本文整理匯總了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
}