164 lines
3.6 KiB
Go
164 lines
3.6 KiB
Go
// Code generated by the FlatBuffers compiler. DO NOT EDIT.
|
|
|
|
package Example
|
|
|
|
import (
|
|
flatbuffers "github.com/google/flatbuffers/go"
|
|
)
|
|
|
|
type StatT struct {
|
|
Id string `json:"id"`
|
|
Val int64 `json:"val"`
|
|
Count uint16 `json:"count"`
|
|
}
|
|
|
|
func (t *StatT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
|
|
if t == nil {
|
|
return 0
|
|
}
|
|
idOffset := flatbuffers.UOffsetT(0)
|
|
if t.Id != "" {
|
|
idOffset = builder.CreateString(t.Id)
|
|
}
|
|
StatStart(builder)
|
|
StatAddId(builder, idOffset)
|
|
StatAddVal(builder, t.Val)
|
|
StatAddCount(builder, t.Count)
|
|
return StatEnd(builder)
|
|
}
|
|
|
|
func (rcv *Stat) UnPackTo(t *StatT) {
|
|
t.Id = string(rcv.Id())
|
|
t.Val = rcv.Val()
|
|
t.Count = rcv.Count()
|
|
}
|
|
|
|
func (rcv *Stat) UnPack() *StatT {
|
|
if rcv == nil {
|
|
return nil
|
|
}
|
|
t := &StatT{}
|
|
rcv.UnPackTo(t)
|
|
return t
|
|
}
|
|
|
|
type Stat struct {
|
|
_tab flatbuffers.Table
|
|
}
|
|
|
|
func GetRootAsStat(buf []byte, offset flatbuffers.UOffsetT) *Stat {
|
|
n := flatbuffers.GetUOffsetT(buf[offset:])
|
|
x := &Stat{}
|
|
x.Init(buf, n+offset)
|
|
return x
|
|
}
|
|
|
|
func FinishStatBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) {
|
|
builder.Finish(offset)
|
|
}
|
|
|
|
func GetSizePrefixedRootAsStat(buf []byte, offset flatbuffers.UOffsetT) *Stat {
|
|
n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:])
|
|
x := &Stat{}
|
|
x.Init(buf, n+offset+flatbuffers.SizeUint32)
|
|
return x
|
|
}
|
|
|
|
func FinishSizePrefixedStatBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) {
|
|
builder.FinishSizePrefixed(offset)
|
|
}
|
|
|
|
func (rcv *Stat) Init(buf []byte, i flatbuffers.UOffsetT) {
|
|
rcv._tab.Bytes = buf
|
|
rcv._tab.Pos = i
|
|
}
|
|
|
|
func (rcv *Stat) Table() flatbuffers.Table {
|
|
return rcv._tab
|
|
}
|
|
|
|
func (rcv *Stat) Id() []byte {
|
|
o := flatbuffers.UOffsetT(rcv._tab.Offset(4))
|
|
if o != 0 {
|
|
return rcv._tab.ByteVector(o + rcv._tab.Pos)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (rcv *Stat) Val() int64 {
|
|
o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
|
|
if o != 0 {
|
|
return rcv._tab.GetInt64(o + rcv._tab.Pos)
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (rcv *Stat) MutateVal(n int64) bool {
|
|
return rcv._tab.MutateInt64Slot(6, n)
|
|
}
|
|
|
|
func (rcv *Stat) Count() uint16 {
|
|
o := flatbuffers.UOffsetT(rcv._tab.Offset(8))
|
|
if o != 0 {
|
|
return rcv._tab.GetUint16(o + rcv._tab.Pos)
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (rcv *Stat) MutateCount(n uint16) bool {
|
|
return rcv._tab.MutateUint16Slot(8, n)
|
|
}
|
|
|
|
func StatKeyCompare(o1, o2 flatbuffers.UOffsetT, buf []byte) bool {
|
|
obj1 := &Stat{}
|
|
obj2 := &Stat{}
|
|
obj1.Init(buf, flatbuffers.UOffsetT(len(buf))-o1)
|
|
obj2.Init(buf, flatbuffers.UOffsetT(len(buf))-o2)
|
|
return obj1.Count() < obj2.Count()
|
|
}
|
|
|
|
func (rcv *Stat) LookupByKey(key uint16, vectorLocation flatbuffers.UOffsetT, buf []byte) bool {
|
|
span := flatbuffers.GetUOffsetT(buf[vectorLocation-4:])
|
|
start := flatbuffers.UOffsetT(0)
|
|
for span != 0 {
|
|
middle := span / 2
|
|
tableOffset := flatbuffers.GetIndirectOffset(buf, vectorLocation+4*(start+middle))
|
|
obj := &Stat{}
|
|
obj.Init(buf, tableOffset)
|
|
val := obj.Count()
|
|
comp := 0
|
|
if val > key {
|
|
comp = 1
|
|
} else if val < key {
|
|
comp = -1
|
|
}
|
|
if comp > 0 {
|
|
span = middle
|
|
} else if comp < 0 {
|
|
middle += 1
|
|
start += middle
|
|
span -= middle
|
|
} else {
|
|
rcv.Init(buf, tableOffset)
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
func StatStart(builder *flatbuffers.Builder) {
|
|
builder.StartObject(3)
|
|
}
|
|
func StatAddId(builder *flatbuffers.Builder, id flatbuffers.UOffsetT) {
|
|
builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(id), 0)
|
|
}
|
|
func StatAddVal(builder *flatbuffers.Builder, val int64) {
|
|
builder.PrependInt64Slot(1, val, 0)
|
|
}
|
|
func StatAddCount(builder *flatbuffers.Builder, count uint16) {
|
|
builder.PrependUint16Slot(2, count, 0)
|
|
}
|
|
func StatEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
|
|
return builder.EndObject()
|
|
}
|