本文整理汇总了Golang中github.com/FactomProject/factomd/common/interfaces.ITransaction.MarshalBinary方法的典型用法代码示例。如果您正苦于以下问题:Golang ITransaction.MarshalBinary方法的具体用法?Golang ITransaction.MarshalBinary怎么用?Golang ITransaction.MarshalBinary使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/FactomProject/factomd/common/interfaces.ITransaction
的用法示例。
在下文中一共展示了ITransaction.MarshalBinary方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: MarshalTrans
func (b *FBlock) MarshalTrans() ([]byte, error) {
var out bytes.Buffer
var periodMark = 0
var i int
var trans interfaces.ITransaction
for i, trans = range b.Transactions {
for periodMark < len(b.endOfPeriod) &&
b.endOfPeriod[periodMark] > 0 && // Ignore if markers are not set
i == b.endOfPeriod[periodMark] {
out.WriteByte(constants.MARKER)
periodMark++
}
data, err := trans.MarshalBinary()
if err != nil {
return nil, err
}
out.Write(data)
if err != nil {
return nil, err
}
}
for periodMark < len(b.endOfPeriod) {
out.WriteByte(constants.MARKER)
periodMark++
}
return out.Bytes(), nil
}
示例2: MarshalTrans
func (b *FBlock) MarshalTrans() ([]byte, error) {
var out primitives.Buffer
var periodMark = 0
var i int
var trans interfaces.ITransaction
// for _, v := range b.GetEndOfPeriod() {
// if v == 0 {
// return nil, fmt.Errorf("Factoid Block is incomplete. Missing EOM markers detected: %v",b.endOfPeriod)
// }
// }
for i, trans = range b.Transactions {
for periodMark < len(b.endOfPeriod) &&
b.endOfPeriod[periodMark] > 0 && // Ignore if markers are not set
i == b.endOfPeriod[periodMark] {
out.WriteByte(constants.MARKER)
periodMark++
}
data, err := trans.MarshalBinary()
if err != nil {
return nil, err
}
out.Write(data)
if err != nil {
return nil, err
}
}
for periodMark < len(b.endOfPeriod) {
out.WriteByte(constants.MARKER)
periodMark++
}
return out.DeepCopyBytes(), nil
}