• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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