blob: dfb2ecbae610dd5d4506f2072b837022b4d1564a [file] [log] [blame]
Austin Schuh2dd86a92022-09-14 21:19:23 -07001// automatically generated by the FlatBuffers compiler, do not modify
2
3package DictionaryLookup
4
5import java.nio.*
6import kotlin.math.sign
7import com.google.flatbuffers.*
8
9@Suppress("unused")
10class LongFloatEntry : Table() {
11
12 fun __init(_i: Int, _bb: ByteBuffer) {
13 __reset(_i, _bb)
14 }
15 fun __assign(_i: Int, _bb: ByteBuffer) : LongFloatEntry {
16 __init(_i, _bb)
17 return this
18 }
19 val key : Long
20 get() {
21 val o = __offset(4)
22 return if(o != 0) bb.getLong(o + bb_pos) else 0L
23 }
24 val value : Float
25 get() {
26 val o = __offset(6)
27 return if(o != 0) bb.getFloat(o + bb_pos) else 0.0f
28 }
29 override fun keysCompare(o1: Int, o2: Int, _bb: ByteBuffer) : Int {
30 val val_1 = _bb.getLong(__offset(4, o1, _bb))
31 val val_2 = _bb.getLong(__offset(4, o2, _bb))
32 return (val_1 - val_2).sign
33 }
34 companion object {
James Kuszmaul3b15b0c2022-11-08 14:03:16 -080035 fun validateVersion() = Constants.FLATBUFFERS_22_10_26()
Austin Schuh2dd86a92022-09-14 21:19:23 -070036 fun getRootAsLongFloatEntry(_bb: ByteBuffer): LongFloatEntry = getRootAsLongFloatEntry(_bb, LongFloatEntry())
37 fun getRootAsLongFloatEntry(_bb: ByteBuffer, obj: LongFloatEntry): LongFloatEntry {
38 _bb.order(ByteOrder.LITTLE_ENDIAN)
39 return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb))
40 }
41 fun createLongFloatEntry(builder: FlatBufferBuilder, key: Long, value: Float) : Int {
42 builder.startTable(2)
43 addKey(builder, key)
44 addValue(builder, value)
45 return endLongFloatEntry(builder)
46 }
47 fun startLongFloatEntry(builder: FlatBufferBuilder) = builder.startTable(2)
48 fun addKey(builder: FlatBufferBuilder, key: Long) {
49 builder.addLong(key)
50 builder.slot(0)
51 }
52 fun addValue(builder: FlatBufferBuilder, value: Float) = builder.addFloat(1, value, 0.0)
53 fun endLongFloatEntry(builder: FlatBufferBuilder) : Int {
54 val o = builder.endTable()
55 return o
56 }
57 fun __lookup_by_key(obj: LongFloatEntry?, vectorLocation: Int, key: Long, bb: ByteBuffer) : LongFloatEntry? {
58 var span = bb.getInt(vectorLocation - 4)
59 var start = 0
60 while (span != 0) {
61 var middle = span / 2
62 val tableOffset = __indirect(vectorLocation + 4 * (start + middle), bb)
63 val value = bb.getLong(__offset(4, bb.capacity() - tableOffset, bb))
64 val comp = value.compareTo(key)
65 when {
66 comp > 0 -> span = middle
67 comp < 0 -> {
68 middle++
69 start += middle
70 span -= middle
71 }
72 else -> {
73 return (obj ?: LongFloatEntry()).__assign(tableOffset, bb)
74 }
75 }
76 }
77 return null
78 }
79 }
80}