1// Code generated by the FlatBuffers compiler. DO NOT EDIT. 2 3package Example 4 5import ( 6 flatbuffers "github.com/google/flatbuffers/go" 7) 8 9type ReferrableT struct { 10 Id uint64 `json:"id"` 11} 12 13func (t *ReferrableT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { 14 if t == nil { 15 return 0 16 } 17 ReferrableStart(builder) 18 ReferrableAddId(builder, t.Id) 19 return ReferrableEnd(builder) 20} 21 22func (rcv *Referrable) UnPackTo(t *ReferrableT) { 23 t.Id = rcv.Id() 24} 25 26func (rcv *Referrable) UnPack() *ReferrableT { 27 if rcv == nil { 28 return nil 29 } 30 t := &ReferrableT{} 31 rcv.UnPackTo(t) 32 return t 33} 34 35type Referrable struct { 36 _tab flatbuffers.Table 37} 38 39func GetRootAsReferrable(buf []byte, offset flatbuffers.UOffsetT) *Referrable { 40 n := flatbuffers.GetUOffsetT(buf[offset:]) 41 x := &Referrable{} 42 x.Init(buf, n+offset) 43 return x 44} 45 46func FinishReferrableBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { 47 builder.Finish(offset) 48} 49 50func GetSizePrefixedRootAsReferrable(buf []byte, offset flatbuffers.UOffsetT) *Referrable { 51 n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) 52 x := &Referrable{} 53 x.Init(buf, n+offset+flatbuffers.SizeUint32) 54 return x 55} 56 57func FinishSizePrefixedReferrableBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { 58 builder.FinishSizePrefixed(offset) 59} 60 61func (rcv *Referrable) Init(buf []byte, i flatbuffers.UOffsetT) { 62 rcv._tab.Bytes = buf 63 rcv._tab.Pos = i 64} 65 66func (rcv *Referrable) Table() flatbuffers.Table { 67 return rcv._tab 68} 69 70func (rcv *Referrable) Id() uint64 { 71 o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) 72 if o != 0 { 73 return rcv._tab.GetUint64(o + rcv._tab.Pos) 74 } 75 return 0 76} 77 78func (rcv *Referrable) MutateId(n uint64) bool { 79 return rcv._tab.MutateUint64Slot(4, n) 80} 81 82func ReferrableKeyCompare(o1, o2 flatbuffers.UOffsetT, buf []byte) bool { 83 obj1 := &Referrable{} 84 obj2 := &Referrable{} 85 obj1.Init(buf, flatbuffers.UOffsetT(len(buf))-o1) 86 obj2.Init(buf, flatbuffers.UOffsetT(len(buf))-o2) 87 return obj1.Id() < obj2.Id() 88} 89 90func (rcv *Referrable) LookupByKey(key uint64, vectorLocation flatbuffers.UOffsetT, buf []byte) bool { 91 span := flatbuffers.GetUOffsetT(buf[vectorLocation-4:]) 92 start := flatbuffers.UOffsetT(0) 93 for span != 0 { 94 middle := span / 2 95 tableOffset := flatbuffers.GetIndirectOffset(buf, vectorLocation+4*(start+middle)) 96 obj := &Referrable{} 97 obj.Init(buf, tableOffset) 98 val := obj.Id() 99 comp := 0 100 if val > key { 101 comp = 1 102 } else if val < key { 103 comp = -1 104 } 105 if comp > 0 { 106 span = middle 107 } else if comp < 0 { 108 middle += 1 109 start += middle 110 span -= middle 111 } else { 112 rcv.Init(buf, tableOffset) 113 return true 114 } 115 } 116 return false 117} 118 119func ReferrableStart(builder *flatbuffers.Builder) { 120 builder.StartObject(1) 121} 122func ReferrableAddId(builder *flatbuffers.Builder, id uint64) { 123 builder.PrependUint64Slot(0, id, 0) 124} 125func ReferrableEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { 126 return builder.EndObject() 127} 128