本文整理匯總了Golang中github.com/google/flatbuffers/go.Builder.CreateString方法的典型用法代碼示例。如果您正苦於以下問題:Golang Builder.CreateString方法的具體用法?Golang Builder.CreateString怎麽用?Golang Builder.CreateString使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/google/flatbuffers/go.Builder
的用法示例。
在下文中一共展示了Builder.CreateString方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: serializeByFlatBuffers
func serializeByFlatBuffers(builder *flatbuffers.Builder, cg *ColorGroup) []byte {
builder.Reset()
//prepare data
name := builder.CreateString(cg.Name)
//prepare colors array
colorsLen := len(cg.Colors)
offsets := make([]flatbuffers.UOffsetT, colorsLen)
for i := colorsLen - 1; i >= 0; i-- {
offsets[i] = builder.CreateString(cg.Colors[i])
}
FlatBufferColorGroupStartColorsVector(builder, colorsLen)
for i := colorsLen - 1; i >= 0; i-- {
builder.PrependUOffsetT(offsets[i])
}
offset := builder.EndVector(colorsLen)
FlatBufferColorGroupStart(builder)
FlatBufferColorGroupAddCgId(builder, int32(cg.Id))
FlatBufferColorGroupAddName(builder, name)
FlatBufferColorGroupAddColors(builder, offset)
builder.Finish(FlatBufferColorGroupEnd(builder))
return builder.Bytes[builder.Head():]
}
示例2: serializeUsingFlatBuffers
func serializeUsingFlatBuffers(builder *flatbuffers.Builder, a *A) []byte {
builder.Reset()
name := builder.CreateString(a.Name)
phone := builder.CreateString(a.Phone)
FlatBufferAStart(builder)
FlatBufferAAddName(builder, name)
FlatBufferAAddPhone(builder, phone)
FlatBufferAAddBirthDay(builder, a.BirthDay.Unix())
FlatBufferAAddSiblings(builder, int32(a.Siblings))
var spouse byte
if a.Spouse {
spouse = byte(1)
}
FlatBufferAAddSpouse(builder, spouse)
FlatBufferAAddMoney(builder, a.Money)
builder.Finish(FlatBufferAEnd(builder))
return builder.Bytes[builder.Head():]
}
示例3: CheckByteLayout
//.........這裏部分代碼省略.........
for i := 1; i < 12; i++ {
b.PrependByte(byte(i))
start = append([]byte{byte(i)}, start...)
check(start)
}
b.EndVector(8)
check(append([]byte{8, 0, 0, 0}, start...))
// test 4: 1xuint16 vector
b = flatbuffers.NewBuilder(0)
b.StartVector(flatbuffers.SizeUint16, 1, 1)
check([]byte{0, 0}) // align to 4bytes
b.PrependUint16(1)
check([]byte{1, 0, 0, 0})
b.EndVector(1)
check([]byte{1, 0, 0, 0, 1, 0, 0, 0}) // padding
// test 5: 2xuint16 vector
b = flatbuffers.NewBuilder(0)
b.StartVector(flatbuffers.SizeUint16, 2, 1)
check([]byte{}) // align to 4bytes
b.PrependUint16(0xABCD)
check([]byte{0xCD, 0xAB})
b.PrependUint16(0xDCBA)
check([]byte{0xBA, 0xDC, 0xCD, 0xAB})
b.EndVector(2)
check([]byte{2, 0, 0, 0, 0xBA, 0xDC, 0xCD, 0xAB})
// test 6: CreateString
b = flatbuffers.NewBuilder(0)
b.CreateString("foo")
check([]byte{3, 0, 0, 0, 'f', 'o', 'o', 0}) // 0-terminated, no pad
b.CreateString("moop")
check([]byte{4, 0, 0, 0, 'm', 'o', 'o', 'p', 0, 0, 0, 0, // 0-terminated, 3-byte pad
3, 0, 0, 0, 'f', 'o', 'o', 0})
// test 6b: CreateString unicode
b = flatbuffers.NewBuilder(0)
// These characters are chinese from blog.golang.org/strings
// We use escape codes here so that editors without unicode support
// aren't bothered:
uni_str := "\u65e5\u672c\u8a9e"
b.CreateString(uni_str)
check([]byte{9, 0, 0, 0, 230, 151, 165, 230, 156, 172, 232, 170, 158, 0, // null-terminated, 2-byte pad
0, 0})
// test 6c: CreateByteString
b = flatbuffers.NewBuilder(0)
b.CreateByteString([]byte("foo"))
check([]byte{3, 0, 0, 0, 'f', 'o', 'o', 0}) // 0-terminated, no pad
b.CreateByteString([]byte("moop"))
check([]byte{4, 0, 0, 0, 'm', 'o', 'o', 'p', 0, 0, 0, 0, // 0-terminated, 3-byte pad
3, 0, 0, 0, 'f', 'o', 'o', 0})
// test 7: empty vtable
b = flatbuffers.NewBuilder(0)
b.StartObject(0)
check([]byte{})
b.EndObject()
check([]byte{4, 0, 4, 0, 4, 0, 0, 0})