xref: /aosp_15_r20/external/flatbuffers/go/lib.go (revision 890232f25432b36107d06881e0a25aaa6b473652)
1*890232f2SAndroid Build Coastguard Workerpackage flatbuffers
2*890232f2SAndroid Build Coastguard Worker
3*890232f2SAndroid Build Coastguard Worker// FlatBuffer is the interface that represents a flatbuffer.
4*890232f2SAndroid Build Coastguard Workertype FlatBuffer interface {
5*890232f2SAndroid Build Coastguard Worker	Table() Table
6*890232f2SAndroid Build Coastguard Worker	Init(buf []byte, i UOffsetT)
7*890232f2SAndroid Build Coastguard Worker}
8*890232f2SAndroid Build Coastguard Worker
9*890232f2SAndroid Build Coastguard Worker// GetRootAs is a generic helper to initialize a FlatBuffer with the provided buffer bytes and its data offset.
10*890232f2SAndroid Build Coastguard Workerfunc GetRootAs(buf []byte, offset UOffsetT, fb FlatBuffer) {
11*890232f2SAndroid Build Coastguard Worker	n := GetUOffsetT(buf[offset:])
12*890232f2SAndroid Build Coastguard Worker	fb.Init(buf, n+offset)
13*890232f2SAndroid Build Coastguard Worker}
14*890232f2SAndroid Build Coastguard Worker
15*890232f2SAndroid Build Coastguard Worker// GetSizePrefixedRootAs is a generic helper to initialize a FlatBuffer with the provided size-prefixed buffer
16*890232f2SAndroid Build Coastguard Worker// bytes and its data offset
17*890232f2SAndroid Build Coastguard Workerfunc GetSizePrefixedRootAs(buf []byte, offset UOffsetT, fb FlatBuffer) {
18*890232f2SAndroid Build Coastguard Worker	n := GetUOffsetT(buf[offset+sizePrefixLength:])
19*890232f2SAndroid Build Coastguard Worker	fb.Init(buf, n+offset+sizePrefixLength)
20*890232f2SAndroid Build Coastguard Worker}
21*890232f2SAndroid Build Coastguard Worker
22*890232f2SAndroid Build Coastguard Worker// GetSizePrefix reads the size from a size-prefixed flatbuffer
23*890232f2SAndroid Build Coastguard Workerfunc GetSizePrefix(buf []byte, offset UOffsetT) uint32 {
24*890232f2SAndroid Build Coastguard Worker	return GetUint32(buf[offset:])
25*890232f2SAndroid Build Coastguard Worker}
26