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 StatT struct { 10 Id string `json:"id"` 11 Val int64 `json:"val"` 12 Count uint16 `json:"count"` 13} 14 15func (t *StatT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { 16 if t == nil { 17 return 0 18 } 19 idOffset := flatbuffers.UOffsetT(0) 20 if t.Id != "" { 21 idOffset = builder.CreateString(t.Id) 22 } 23 StatStart(builder) 24 StatAddId(builder, idOffset) 25 StatAddVal(builder, t.Val) 26 StatAddCount(builder, t.Count) 27 return StatEnd(builder) 28} 29 30func (rcv *Stat) UnPackTo(t *StatT) { 31 t.Id = string(rcv.Id()) 32 t.Val = rcv.Val() 33 t.Count = rcv.Count() 34} 35 36func (rcv *Stat) UnPack() *StatT { 37 if rcv == nil { 38 return nil 39 } 40 t := &StatT{} 41 rcv.UnPackTo(t) 42 return t 43} 44 45type Stat struct { 46 _tab flatbuffers.Table 47} 48 49func GetRootAsStat(buf []byte, offset flatbuffers.UOffsetT) *Stat { 50 n := flatbuffers.GetUOffsetT(buf[offset:]) 51 x := &Stat{} 52 x.Init(buf, n+offset) 53 return x 54} 55 56func FinishStatBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { 57 builder.Finish(offset) 58} 59 60func GetSizePrefixedRootAsStat(buf []byte, offset flatbuffers.UOffsetT) *Stat { 61 n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) 62 x := &Stat{} 63 x.Init(buf, n+offset+flatbuffers.SizeUint32) 64 return x 65} 66 67func FinishSizePrefixedStatBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { 68 builder.FinishSizePrefixed(offset) 69} 70 71func (rcv *Stat) Init(buf []byte, i flatbuffers.UOffsetT) { 72 rcv._tab.Bytes = buf 73 rcv._tab.Pos = i 74} 75 76func (rcv *Stat) Table() flatbuffers.Table { 77 return rcv._tab 78} 79 80func (rcv *Stat) Id() []byte { 81 o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) 82 if o != 0 { 83 return rcv._tab.ByteVector(o + rcv._tab.Pos) 84 } 85 return nil 86} 87 88func (rcv *Stat) Val() int64 { 89 o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) 90 if o != 0 { 91 return rcv._tab.GetInt64(o + rcv._tab.Pos) 92 } 93 return 0 94} 95 96func (rcv *Stat) MutateVal(n int64) bool { 97 return rcv._tab.MutateInt64Slot(6, n) 98} 99 100func (rcv *Stat) Count() uint16 { 101 o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) 102 if o != 0 { 103 return rcv._tab.GetUint16(o + rcv._tab.Pos) 104 } 105 return 0 106} 107 108func (rcv *Stat) MutateCount(n uint16) bool { 109 return rcv._tab.MutateUint16Slot(8, n) 110} 111 112func StatKeyCompare(o1, o2 flatbuffers.UOffsetT, buf []byte) bool { 113 obj1 := &Stat{} 114 obj2 := &Stat{} 115 obj1.Init(buf, flatbuffers.UOffsetT(len(buf))-o1) 116 obj2.Init(buf, flatbuffers.UOffsetT(len(buf))-o2) 117 return obj1.Count() < obj2.Count() 118} 119 120func (rcv *Stat) LookupByKey(key uint16, vectorLocation flatbuffers.UOffsetT, buf []byte) bool { 121 span := flatbuffers.GetUOffsetT(buf[vectorLocation-4:]) 122 start := flatbuffers.UOffsetT(0) 123 for span != 0 { 124 middle := span / 2 125 tableOffset := flatbuffers.GetIndirectOffset(buf, vectorLocation+4*(start+middle)) 126 obj := &Stat{} 127 obj.Init(buf, tableOffset) 128 val := obj.Count() 129 comp := 0 130 if val > key { 131 comp = 1 132 } else if val < key { 133 comp = -1 134 } 135 if comp > 0 { 136 span = middle 137 } else if comp < 0 { 138 middle += 1 139 start += middle 140 span -= middle 141 } else { 142 rcv.Init(buf, tableOffset) 143 return true 144 } 145 } 146 return false 147} 148 149func StatStart(builder *flatbuffers.Builder) { 150 builder.StartObject(3) 151} 152func StatAddId(builder *flatbuffers.Builder, id flatbuffers.UOffsetT) { 153 builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(id), 0) 154} 155func StatAddVal(builder *flatbuffers.Builder, val int64) { 156 builder.PrependInt64Slot(1, val, 0) 157} 158func StatAddCount(builder *flatbuffers.Builder, count uint16) { 159 builder.PrependUint16Slot(2, count, 0) 160} 161func StatEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { 162 return builder.EndObject() 163} 164