...
1
2
3 package Example
4
5 import (
6 flatbuffers "github.com/google/flatbuffers/go"
7 )
8
9 type TestT struct {
10 A int16 `json:"a"`
11 B int8 `json:"b"`
12 }
13
14 func (t *TestT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
15 if t == nil {
16 return 0
17 }
18 return CreateTest(builder, t.A, t.B)
19 }
20 func (rcv *Test) UnPackTo(t *TestT) {
21 t.A = rcv.A()
22 t.B = rcv.B()
23 }
24
25 func (rcv *Test) UnPack() *TestT {
26 if rcv == nil {
27 return nil
28 }
29 t := &TestT{}
30 rcv.UnPackTo(t)
31 return t
32 }
33
34 type Test struct {
35 _tab flatbuffers.Struct
36 }
37
38 func (rcv *Test) Init(buf []byte, i flatbuffers.UOffsetT) {
39 rcv._tab.Bytes = buf
40 rcv._tab.Pos = i
41 }
42
43 func (rcv *Test) Table() flatbuffers.Table {
44 return rcv._tab.Table
45 }
46
47 func (rcv *Test) A() int16 {
48 return rcv._tab.GetInt16(rcv._tab.Pos + flatbuffers.UOffsetT(0))
49 }
50 func (rcv *Test) MutateA(n int16) bool {
51 return rcv._tab.MutateInt16(rcv._tab.Pos+flatbuffers.UOffsetT(0), n)
52 }
53
54 func (rcv *Test) B() int8 {
55 return rcv._tab.GetInt8(rcv._tab.Pos + flatbuffers.UOffsetT(2))
56 }
57 func (rcv *Test) MutateB(n int8) bool {
58 return rcv._tab.MutateInt8(rcv._tab.Pos+flatbuffers.UOffsetT(2), n)
59 }
60
61 func CreateTest(builder *flatbuffers.Builder, a int16, b int8) flatbuffers.UOffsetT {
62 builder.Prep(2, 4)
63 builder.Pad(1)
64 builder.PrependInt8(b)
65 builder.PrependInt16(a)
66 return builder.Offset()
67 }
68
View as plain text