| // Code generated by the FlatBuffers compiler. DO NOT EDIT. | |
| package Example | |
| import ( | |
| flatbuffers "github.com/google/flatbuffers/go" | |
| ) | |
| type ReferrableT struct { | |
| Id uint64 `json:"id"` | |
| } | |
| func (t *ReferrableT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { | |
| if t == nil { | |
| return 0 | |
| } | |
| ReferrableStart(builder) | |
| ReferrableAddId(builder, t.Id) | |
| return ReferrableEnd(builder) | |
| } | |
| func (rcv *Referrable) UnPackTo(t *ReferrableT) { | |
| t.Id = rcv.Id() | |
| } | |
| func (rcv *Referrable) UnPack() *ReferrableT { | |
| if rcv == nil { | |
| return nil | |
| } | |
| t := &ReferrableT{} | |
| rcv.UnPackTo(t) | |
| return t | |
| } | |
| type Referrable struct { | |
| _tab flatbuffers.Table | |
| } | |
| func GetRootAsReferrable(buf []byte, offset flatbuffers.UOffsetT) *Referrable { | |
| n := flatbuffers.GetUOffsetT(buf[offset:]) | |
| x := &Referrable{} | |
| x.Init(buf, n+offset) | |
| return x | |
| } | |
| func FinishReferrableBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { | |
| builder.Finish(offset) | |
| } | |
| func GetSizePrefixedRootAsReferrable(buf []byte, offset flatbuffers.UOffsetT) *Referrable { | |
| n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) | |
| x := &Referrable{} | |
| x.Init(buf, n+offset+flatbuffers.SizeUint32) | |
| return x | |
| } | |
| func FinishSizePrefixedReferrableBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { | |
| builder.FinishSizePrefixed(offset) | |
| } | |
| func (rcv *Referrable) Init(buf []byte, i flatbuffers.UOffsetT) { | |
| rcv._tab.Bytes = buf | |
| rcv._tab.Pos = i | |
| } | |
| func (rcv *Referrable) Table() flatbuffers.Table { | |
| return rcv._tab | |
| } | |
| func (rcv *Referrable) Id() uint64 { | |
| o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) | |
| if o != 0 { | |
| return rcv._tab.GetUint64(o + rcv._tab.Pos) | |
| } | |
| return 0 | |
| } | |
| func (rcv *Referrable) MutateId(n uint64) bool { | |
| return rcv._tab.MutateUint64Slot(4, n) | |
| } | |
| func ReferrableKeyCompare(o1, o2 flatbuffers.UOffsetT, buf []byte) bool { | |
| obj1 := &Referrable{} | |
| obj2 := &Referrable{} | |
| obj1.Init(buf, flatbuffers.UOffsetT(len(buf))-o1) | |
| obj2.Init(buf, flatbuffers.UOffsetT(len(buf))-o2) | |
| return obj1.Id() < obj2.Id() | |
| } | |
| func (rcv *Referrable) LookupByKey(key uint64, 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 := &Referrable{} | |
| obj.Init(buf, tableOffset) | |
| val := obj.Id() | |
| 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 ReferrableStart(builder *flatbuffers.Builder) { | |
| builder.StartObject(1) | |
| } | |
| func ReferrableAddId(builder *flatbuffers.Builder, id uint64) { | |
| builder.PrependUint64Slot(0, id, 0) | |
| } | |
| func ReferrableEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { | |
| return builder.EndObject() | |
| } |