• 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 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