[Nim] Bfbs Nim Generator (#7534)

* Bfbs Nim Generator

* Remove commented out tests

* add missing line to idl.h

* Commit python reflection changes

* Commit python reflection changes and move tests

* Remove default string addition

* Move tests to python file

* Fix element size check when element is table

* remove whitespace changes

* add element_type docs and commit further to namer and remove kkeep

* Bfbs Nim Generator

* Remove commented out tests

* add missing line to idl.h

* Commit python reflection changes

* Commit python reflection changes and move tests

* Remove default string addition

* Move tests to python file

* Fix element size check when element is table

* remove whitespace changes

* add element_type docs and commit further to namer and remove kkeep

* remove unused variables

* added tests to ci

* added tests to ci

* fixes

* Added reflection type Field, Variable to namer

* Moved reflection namer impl to bfbsnamer

* Remove whitespace at end of line

* Added nim to generated code

* Revert whitespace removal

Co-authored-by: Derek Bailey <derekbailey@google.com>
This commit is contained in:
Dan Lapid
2022-10-21 21:30:04 +03:00
committed by GitHub
parent e301702964
commit 872a497464
57 changed files with 3344 additions and 34 deletions

View File

@@ -0,0 +1,26 @@
#[ MyGame.Example.Ability
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
flatc version: 22.9.29
Declared by :
Rooting type : MyGame.Example.Monster ()
]#
import flatbuffers
type Ability* = object of FlatObj
func id*(self: Ability): uint32 =
return Get[uint32](self.tab, self.tab.Pos + 0)
func `id=`*(self: var Ability, n: uint32): bool =
return self.tab.Mutate(self.tab.Pos + 0, n)
func distance*(self: Ability): uint32 =
return Get[uint32](self.tab, self.tab.Pos + 4)
func `distance=`*(self: var Ability, n: uint32): bool =
return self.tab.Mutate(self.tab.Pos + 4, n)
proc AbilityCreate*(self: var Builder, id: uint32, distance: uint32): uoffset =
self.Prep(4, 8)
self.Prepend(distance)
self.Prepend(id)
return self.Offset()

View File

@@ -0,0 +1,15 @@
#[ MyGame.Example.Any
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
flatc version: 22.9.29
Declared by :
Rooting type : MyGame.Example.Monster ()
]#
type Any*{.pure.} = enum
None = 0.uint8,
Monster = 1.uint8,
TestSimpleTableWithEnum = 2.uint8,
MyGameExample2Monster = 3.uint8,

View File

@@ -0,0 +1,15 @@
#[ MyGame.Example.AnyAmbiguousAliases
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
flatc version: 22.9.29
Declared by :
Rooting type : MyGame.Example.Monster ()
]#
type AnyAmbiguousAliases*{.pure.} = enum
None = 0.uint8,
M1 = 1.uint8,
M2 = 2.uint8,
M3 = 3.uint8,

View File

@@ -0,0 +1,15 @@
#[ MyGame.Example.AnyUniqueAliases
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
flatc version: 22.9.29
Declared by :
Rooting type : MyGame.Example.Monster ()
]#
type AnyUniqueAliases*{.pure.} = enum
None = 0.uint8,
M = 1.uint8,
Ts = 2.uint8,
M2 = 3.uint8,

View File

@@ -0,0 +1,18 @@
#[ MyGame.Example.Color
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
flatc version: 22.9.29
Declared by :
Rooting type : MyGame.Example.Monster ()
]#
# Composite components of Monster color.
type Color*{.pure.} = enum
Red = 1.uint8,
# \brief color Green
# Green is bit_flag with value (1u << 1)
Green = 2.uint8,
# \brief color Blue (1u << 3)
Blue = 8.uint8,

View File

@@ -0,0 +1,14 @@
#[ MyGame.Example.LongEnum
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
flatc version: 22.9.29
Declared by :
Rooting type : MyGame.Example.Monster ()
]#
type LongEnum*{.pure.} = enum
LongOne = 2.uint64,
LongTwo = 4.uint64,
LongBig = 1099511627776.uint64,

View File

@@ -359,7 +359,7 @@ function mt:Testarrayofsortedstruct(j)
local o = self.view:Offset(62)
if o ~= 0 then
local x = self.view:Vector(o)
x = x + ((j-1) * 4)
x = x + ((j-1) * 8)
local obj = __MyGame_Example_Ability.New()
obj:Init(self.view.bytes, x)
return obj
@@ -852,7 +852,7 @@ function Monster.AddTestarrayofsortedstruct(builder, testarrayofsortedstruct)
end
function Monster.StartTestarrayofsortedstructVector(builder, numElems)
return builder:StartVector(4, numElems, 4)
return builder:StartVector(8, numElems, 4)
end
function Monster.AddFlex(builder, flex)

View File

@@ -0,0 +1,662 @@
#[ MyGame.Example.Monster
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
flatc version: 22.9.29
Declared by :
Rooting type : MyGame.Example.Monster ()
]#
import ../InParentNamespace as MyGame_InParentNamespace
import Ability as MyGame_Example_Ability
import Any as MyGame_Example_Any
import AnyAmbiguousAliases as MyGame_Example_AnyAmbiguousAliases
import AnyUniqueAliases as MyGame_Example_AnyUniqueAliases
import Color as MyGame_Example_Color
import LongEnum as MyGame_Example_LongEnum
import Race as MyGame_Example_Race
import Referrable as MyGame_Example_Referrable
import Stat as MyGame_Example_Stat
import Test as MyGame_Example_Test
import Vec3 as MyGame_Example_Vec3
import flatbuffers
import std/options
# an example documentation comment: "monster object"
type Monster* = object of FlatObj
func pos*(self: Monster): Option[MyGame_Example_Vec3.Vec3] =
let o = self.tab.Offset(4)
if o != 0:
return some(MyGame_Example_Vec3.Vec3(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + o)))
func mana*(self: Monster): int16 =
let o = self.tab.Offset(6)
if o != 0:
return Get[int16](self.tab, self.tab.Pos + o)
return 150
func `mana=`*(self: var Monster, n: int16): bool =
return self.tab.MutateSlot(6, n)
func hp*(self: Monster): int16 =
let o = self.tab.Offset(8)
if o != 0:
return Get[int16](self.tab, self.tab.Pos + o)
return 100
func `hp=`*(self: var Monster, n: int16): bool =
return self.tab.MutateSlot(8, n)
func name*(self: Monster): string =
let o = self.tab.Offset(10)
if o != 0:
return self.tab.String(self.tab.Pos + o)
return ""
func inventoryLength*(self: Monster): int =
let o = self.tab.Offset(14)
if o != 0:
return self.tab.VectorLen(o)
func inventory*(self: Monster, j: int): uint8 =
let o = self.tab.Offset(14)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 1.uoffset
return Get[uint8](self.tab, x)
func inventory*(self: Monster): seq[uint8] =
let len = self.inventoryLength
for i in countup(0, len - 1):
result.add(self.inventory(i))
func color*(self: Monster): MyGame_Example_Color.Color =
let o = self.tab.Offset(16)
if o != 0:
return MyGame_Example_Color.Color(Get[uint8](self.tab, self.tab.Pos + o))
return type(result)(8)
func `color=`*(self: var Monster, n: MyGame_Example_Color.Color): bool =
return self.tab.MutateSlot(16, n)
func testType*(self: Monster): MyGame_Example_Any.Any =
let o = self.tab.Offset(18)
if o != 0:
return MyGame_Example_Any.Any(Get[uint8](self.tab, self.tab.Pos + o))
return type(result)(0)
func `testType=`*(self: var Monster, n: MyGame_Example_Any.Any): bool =
return self.tab.MutateSlot(18, n)
func test*(self: Monster): Option[Vtable] =
let o = self.tab.Offset(20)
if o != 0:
return some(self.tab.Union(o))
func test4Length*(self: Monster): int =
let o = self.tab.Offset(22)
if o != 0:
return self.tab.VectorLen(o)
func test4*(self: Monster, j: int): MyGame_Example_Test.Test =
let o = self.tab.Offset(22)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 4.uoffset
return MyGame_Example_Test.Test(tab: Vtable(Bytes: self.tab.Bytes, Pos: x))
func test4*(self: Monster): seq[MyGame_Example_Test.Test] =
let len = self.test4Length
for i in countup(0, len - 1):
result.add(self.test4(i))
func testarrayofstringLength*(self: Monster): int =
let o = self.tab.Offset(24)
if o != 0:
return self.tab.VectorLen(o)
func testarrayofstring*(self: Monster, j: int): string =
let o = self.tab.Offset(24)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 4.uoffset
return self.tab.String(x)
func testarrayofstring*(self: Monster): seq[string] =
let len = self.testarrayofstringLength
for i in countup(0, len - 1):
result.add(self.testarrayofstring(i))
func testarrayoftablesLength*(self: Monster): int =
let o = self.tab.Offset(26)
if o != 0:
return self.tab.VectorLen(o)
func testarrayoftables*(self: Monster, j: int): Monster =
let o = self.tab.Offset(26)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 4.uoffset
return Monster(tab: Vtable(Bytes: self.tab.Bytes, Pos: x))
func testarrayoftables*(self: Monster): seq[Monster] =
let len = self.testarrayoftablesLength
for i in countup(0, len - 1):
result.add(self.testarrayoftables(i))
func enemy*(self: Monster): Option[Monster] =
let o = self.tab.Offset(28)
if o != 0:
return some(Monster(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + o)))
func testnestedflatbufferLength*(self: Monster): int =
let o = self.tab.Offset(30)
if o != 0:
return self.tab.VectorLen(o)
func testnestedflatbuffer*(self: Monster, j: int): uint8 =
let o = self.tab.Offset(30)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 1.uoffset
return Get[uint8](self.tab, x)
func testnestedflatbuffer*(self: Monster): seq[uint8] =
let len = self.testnestedflatbufferLength
for i in countup(0, len - 1):
result.add(self.testnestedflatbuffer(i))
func testempty*(self: Monster): Option[MyGame_Example_Stat.Stat] =
let o = self.tab.Offset(32)
if o != 0:
return some(MyGame_Example_Stat.Stat(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + o)))
func testbool*(self: Monster): bool =
let o = self.tab.Offset(34)
if o != 0:
return Get[bool](self.tab, self.tab.Pos + o)
return false
func `testbool=`*(self: var Monster, n: bool): bool =
return self.tab.MutateSlot(34, n)
func testhashs32Fnv1*(self: Monster): int32 =
let o = self.tab.Offset(36)
if o != 0:
return Get[int32](self.tab, self.tab.Pos + o)
return 0
func `testhashs32Fnv1=`*(self: var Monster, n: int32): bool =
return self.tab.MutateSlot(36, n)
func testhashu32Fnv1*(self: Monster): uint32 =
let o = self.tab.Offset(38)
if o != 0:
return Get[uint32](self.tab, self.tab.Pos + o)
return 0
func `testhashu32Fnv1=`*(self: var Monster, n: uint32): bool =
return self.tab.MutateSlot(38, n)
func testhashs64Fnv1*(self: Monster): int64 =
let o = self.tab.Offset(40)
if o != 0:
return Get[int64](self.tab, self.tab.Pos + o)
return 0
func `testhashs64Fnv1=`*(self: var Monster, n: int64): bool =
return self.tab.MutateSlot(40, n)
func testhashu64Fnv1*(self: Monster): uint64 =
let o = self.tab.Offset(42)
if o != 0:
return Get[uint64](self.tab, self.tab.Pos + o)
return 0
func `testhashu64Fnv1=`*(self: var Monster, n: uint64): bool =
return self.tab.MutateSlot(42, n)
func testhashs32Fnv1a*(self: Monster): int32 =
let o = self.tab.Offset(44)
if o != 0:
return Get[int32](self.tab, self.tab.Pos + o)
return 0
func `testhashs32Fnv1a=`*(self: var Monster, n: int32): bool =
return self.tab.MutateSlot(44, n)
func testhashu32Fnv1a*(self: Monster): uint32 =
let o = self.tab.Offset(46)
if o != 0:
return Get[uint32](self.tab, self.tab.Pos + o)
return 0
func `testhashu32Fnv1a=`*(self: var Monster, n: uint32): bool =
return self.tab.MutateSlot(46, n)
func testhashs64Fnv1a*(self: Monster): int64 =
let o = self.tab.Offset(48)
if o != 0:
return Get[int64](self.tab, self.tab.Pos + o)
return 0
func `testhashs64Fnv1a=`*(self: var Monster, n: int64): bool =
return self.tab.MutateSlot(48, n)
func testhashu64Fnv1a*(self: Monster): uint64 =
let o = self.tab.Offset(50)
if o != 0:
return Get[uint64](self.tab, self.tab.Pos + o)
return 0
func `testhashu64Fnv1a=`*(self: var Monster, n: uint64): bool =
return self.tab.MutateSlot(50, n)
func testarrayofboolsLength*(self: Monster): int =
let o = self.tab.Offset(52)
if o != 0:
return self.tab.VectorLen(o)
func testarrayofbools*(self: Monster, j: int): bool =
let o = self.tab.Offset(52)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 1.uoffset
return Get[bool](self.tab, x)
func testarrayofbools*(self: Monster): seq[bool] =
let len = self.testarrayofboolsLength
for i in countup(0, len - 1):
result.add(self.testarrayofbools(i))
func testf*(self: Monster): float32 =
let o = self.tab.Offset(54)
if o != 0:
return Get[float32](self.tab, self.tab.Pos + o)
return 3.14159
func `testf=`*(self: var Monster, n: float32): bool =
return self.tab.MutateSlot(54, n)
func testf2*(self: Monster): float32 =
let o = self.tab.Offset(56)
if o != 0:
return Get[float32](self.tab, self.tab.Pos + o)
return 3.0
func `testf2=`*(self: var Monster, n: float32): bool =
return self.tab.MutateSlot(56, n)
func testf3*(self: Monster): float32 =
let o = self.tab.Offset(58)
if o != 0:
return Get[float32](self.tab, self.tab.Pos + o)
return 0.0
func `testf3=`*(self: var Monster, n: float32): bool =
return self.tab.MutateSlot(58, n)
func testarrayofstring2Length*(self: Monster): int =
let o = self.tab.Offset(60)
if o != 0:
return self.tab.VectorLen(o)
func testarrayofstring2*(self: Monster, j: int): string =
let o = self.tab.Offset(60)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 4.uoffset
return self.tab.String(x)
func testarrayofstring2*(self: Monster): seq[string] =
let len = self.testarrayofstring2Length
for i in countup(0, len - 1):
result.add(self.testarrayofstring2(i))
func testarrayofsortedstructLength*(self: Monster): int =
let o = self.tab.Offset(62)
if o != 0:
return self.tab.VectorLen(o)
func testarrayofsortedstruct*(self: Monster, j: int): MyGame_Example_Ability.Ability =
let o = self.tab.Offset(62)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 8.uoffset
return MyGame_Example_Ability.Ability(tab: Vtable(Bytes: self.tab.Bytes, Pos: x))
func testarrayofsortedstruct*(self: Monster): seq[MyGame_Example_Ability.Ability] =
let len = self.testarrayofsortedstructLength
for i in countup(0, len - 1):
result.add(self.testarrayofsortedstruct(i))
func flexLength*(self: Monster): int =
let o = self.tab.Offset(64)
if o != 0:
return self.tab.VectorLen(o)
func flex*(self: Monster, j: int): uint8 =
let o = self.tab.Offset(64)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 1.uoffset
return Get[uint8](self.tab, x)
func flex*(self: Monster): seq[uint8] =
let len = self.flexLength
for i in countup(0, len - 1):
result.add(self.flex(i))
func test5Length*(self: Monster): int =
let o = self.tab.Offset(66)
if o != 0:
return self.tab.VectorLen(o)
func test5*(self: Monster, j: int): MyGame_Example_Test.Test =
let o = self.tab.Offset(66)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 4.uoffset
return MyGame_Example_Test.Test(tab: Vtable(Bytes: self.tab.Bytes, Pos: x))
func test5*(self: Monster): seq[MyGame_Example_Test.Test] =
let len = self.test5Length
for i in countup(0, len - 1):
result.add(self.test5(i))
func vectorOfLongsLength*(self: Monster): int =
let o = self.tab.Offset(68)
if o != 0:
return self.tab.VectorLen(o)
func vectorOfLongs*(self: Monster, j: int): int64 =
let o = self.tab.Offset(68)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 8.uoffset
return Get[int64](self.tab, x)
func vectorOfLongs*(self: Monster): seq[int64] =
let len = self.vectorOfLongsLength
for i in countup(0, len - 1):
result.add(self.vectorOfLongs(i))
func vectorOfDoublesLength*(self: Monster): int =
let o = self.tab.Offset(70)
if o != 0:
return self.tab.VectorLen(o)
func vectorOfDoubles*(self: Monster, j: int): float64 =
let o = self.tab.Offset(70)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 8.uoffset
return Get[float64](self.tab, x)
func vectorOfDoubles*(self: Monster): seq[float64] =
let len = self.vectorOfDoublesLength
for i in countup(0, len - 1):
result.add(self.vectorOfDoubles(i))
func parentNamespaceTest*(self: Monster): Option[MyGame_InParentNamespace.InParentNamespace] =
let o = self.tab.Offset(72)
if o != 0:
return some(MyGame_InParentNamespace.InParentNamespace(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + o)))
func vectorOfReferrablesLength*(self: Monster): int =
let o = self.tab.Offset(74)
if o != 0:
return self.tab.VectorLen(o)
func vectorOfReferrables*(self: Monster, j: int): MyGame_Example_Referrable.Referrable =
let o = self.tab.Offset(74)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 4.uoffset
return MyGame_Example_Referrable.Referrable(tab: Vtable(Bytes: self.tab.Bytes, Pos: x))
func vectorOfReferrables*(self: Monster): seq[MyGame_Example_Referrable.Referrable] =
let len = self.vectorOfReferrablesLength
for i in countup(0, len - 1):
result.add(self.vectorOfReferrables(i))
func singleWeakReference*(self: Monster): uint64 =
let o = self.tab.Offset(76)
if o != 0:
return Get[uint64](self.tab, self.tab.Pos + o)
return 0
func `singleWeakReference=`*(self: var Monster, n: uint64): bool =
return self.tab.MutateSlot(76, n)
func vectorOfWeakReferencesLength*(self: Monster): int =
let o = self.tab.Offset(78)
if o != 0:
return self.tab.VectorLen(o)
func vectorOfWeakReferences*(self: Monster, j: int): uint64 =
let o = self.tab.Offset(78)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 8.uoffset
return Get[uint64](self.tab, x)
func vectorOfWeakReferences*(self: Monster): seq[uint64] =
let len = self.vectorOfWeakReferencesLength
for i in countup(0, len - 1):
result.add(self.vectorOfWeakReferences(i))
func vectorOfStrongReferrablesLength*(self: Monster): int =
let o = self.tab.Offset(80)
if o != 0:
return self.tab.VectorLen(o)
func vectorOfStrongReferrables*(self: Monster, j: int): MyGame_Example_Referrable.Referrable =
let o = self.tab.Offset(80)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 4.uoffset
return MyGame_Example_Referrable.Referrable(tab: Vtable(Bytes: self.tab.Bytes, Pos: x))
func vectorOfStrongReferrables*(self: Monster): seq[MyGame_Example_Referrable.Referrable] =
let len = self.vectorOfStrongReferrablesLength
for i in countup(0, len - 1):
result.add(self.vectorOfStrongReferrables(i))
func coOwningReference*(self: Monster): uint64 =
let o = self.tab.Offset(82)
if o != 0:
return Get[uint64](self.tab, self.tab.Pos + o)
return 0
func `coOwningReference=`*(self: var Monster, n: uint64): bool =
return self.tab.MutateSlot(82, n)
func vectorOfCoOwningReferencesLength*(self: Monster): int =
let o = self.tab.Offset(84)
if o != 0:
return self.tab.VectorLen(o)
func vectorOfCoOwningReferences*(self: Monster, j: int): uint64 =
let o = self.tab.Offset(84)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 8.uoffset
return Get[uint64](self.tab, x)
func vectorOfCoOwningReferences*(self: Monster): seq[uint64] =
let len = self.vectorOfCoOwningReferencesLength
for i in countup(0, len - 1):
result.add(self.vectorOfCoOwningReferences(i))
func nonOwningReference*(self: Monster): uint64 =
let o = self.tab.Offset(86)
if o != 0:
return Get[uint64](self.tab, self.tab.Pos + o)
return 0
func `nonOwningReference=`*(self: var Monster, n: uint64): bool =
return self.tab.MutateSlot(86, n)
func vectorOfNonOwningReferencesLength*(self: Monster): int =
let o = self.tab.Offset(88)
if o != 0:
return self.tab.VectorLen(o)
func vectorOfNonOwningReferences*(self: Monster, j: int): uint64 =
let o = self.tab.Offset(88)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 8.uoffset
return Get[uint64](self.tab, x)
func vectorOfNonOwningReferences*(self: Monster): seq[uint64] =
let len = self.vectorOfNonOwningReferencesLength
for i in countup(0, len - 1):
result.add(self.vectorOfNonOwningReferences(i))
func anyUniqueType*(self: Monster): MyGame_Example_AnyUniqueAliases.AnyUniqueAliases =
let o = self.tab.Offset(90)
if o != 0:
return MyGame_Example_AnyUniqueAliases.AnyUniqueAliases(Get[uint8](self.tab, self.tab.Pos + o))
return type(result)(0)
func `anyUniqueType=`*(self: var Monster, n: MyGame_Example_AnyUniqueAliases.AnyUniqueAliases): bool =
return self.tab.MutateSlot(90, n)
func anyUnique*(self: Monster): Option[Vtable] =
let o = self.tab.Offset(92)
if o != 0:
return some(self.tab.Union(o))
func anyAmbiguousType*(self: Monster): MyGame_Example_AnyAmbiguousAliases.AnyAmbiguousAliases =
let o = self.tab.Offset(94)
if o != 0:
return MyGame_Example_AnyAmbiguousAliases.AnyAmbiguousAliases(Get[uint8](self.tab, self.tab.Pos + o))
return type(result)(0)
func `anyAmbiguousType=`*(self: var Monster, n: MyGame_Example_AnyAmbiguousAliases.AnyAmbiguousAliases): bool =
return self.tab.MutateSlot(94, n)
func anyAmbiguous*(self: Monster): Option[Vtable] =
let o = self.tab.Offset(96)
if o != 0:
return some(self.tab.Union(o))
func vectorOfEnumsLength*(self: Monster): int =
let o = self.tab.Offset(98)
if o != 0:
return self.tab.VectorLen(o)
func vectorOfEnums*(self: Monster, j: int): MyGame_Example_Color.Color =
let o = self.tab.Offset(98)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 1.uoffset
return MyGame_Example_Color.Color(Get[uint8](self.tab, x))
func vectorOfEnums*(self: Monster): seq[MyGame_Example_Color.Color] =
let len = self.vectorOfEnumsLength
for i in countup(0, len - 1):
result.add(self.vectorOfEnums(i))
func signedEnum*(self: Monster): MyGame_Example_Race.Race =
let o = self.tab.Offset(100)
if o != 0:
return MyGame_Example_Race.Race(Get[int8](self.tab, self.tab.Pos + o))
return type(result)(-1)
func `signedEnum=`*(self: var Monster, n: MyGame_Example_Race.Race): bool =
return self.tab.MutateSlot(100, n)
func testrequirednestedflatbufferLength*(self: Monster): int =
let o = self.tab.Offset(102)
if o != 0:
return self.tab.VectorLen(o)
func testrequirednestedflatbuffer*(self: Monster, j: int): uint8 =
let o = self.tab.Offset(102)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 1.uoffset
return Get[uint8](self.tab, x)
func testrequirednestedflatbuffer*(self: Monster): seq[uint8] =
let len = self.testrequirednestedflatbufferLength
for i in countup(0, len - 1):
result.add(self.testrequirednestedflatbuffer(i))
func scalarKeySortedTablesLength*(self: Monster): int =
let o = self.tab.Offset(104)
if o != 0:
return self.tab.VectorLen(o)
func scalarKeySortedTables*(self: Monster, j: int): MyGame_Example_Stat.Stat =
let o = self.tab.Offset(104)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 4.uoffset
return MyGame_Example_Stat.Stat(tab: Vtable(Bytes: self.tab.Bytes, Pos: x))
func scalarKeySortedTables*(self: Monster): seq[MyGame_Example_Stat.Stat] =
let len = self.scalarKeySortedTablesLength
for i in countup(0, len - 1):
result.add(self.scalarKeySortedTables(i))
func nativeInline*(self: Monster): Option[MyGame_Example_Test.Test] =
let o = self.tab.Offset(106)
if o != 0:
return some(MyGame_Example_Test.Test(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + o)))
func longEnumNonEnumDefault*(self: Monster): MyGame_Example_LongEnum.LongEnum =
let o = self.tab.Offset(108)
if o != 0:
return MyGame_Example_LongEnum.LongEnum(Get[uint64](self.tab, self.tab.Pos + o))
return type(result)(0)
func `longEnumNonEnumDefault=`*(self: var Monster, n: MyGame_Example_LongEnum.LongEnum): bool =
return self.tab.MutateSlot(108, n)
func longEnumNormalDefault*(self: Monster): MyGame_Example_LongEnum.LongEnum =
let o = self.tab.Offset(110)
if o != 0:
return MyGame_Example_LongEnum.LongEnum(Get[uint64](self.tab, self.tab.Pos + o))
return type(result)(2)
func `longEnumNormalDefault=`*(self: var Monster, n: MyGame_Example_LongEnum.LongEnum): bool =
return self.tab.MutateSlot(110, n)
proc MonsterStart*(builder: var Builder) =
builder.StartObject(54)
proc MonsterAddpos*(builder: var Builder, pos: uoffset) =
builder.PrependStructSlot(0, pos, default(uoffset))
proc MonsterAddmana*(builder: var Builder, mana: int16) =
builder.PrependSlot(1, mana, default(int16))
proc MonsterAddhp*(builder: var Builder, hp: int16) =
builder.PrependSlot(2, hp, default(int16))
proc MonsterAddname*(builder: var Builder, name: uoffset) =
builder.PrependSlot(3, name, default(uoffset))
proc MonsterAddinventory*(builder: var Builder, inventory: uoffset) =
builder.PrependSlot(5, inventory, default(uoffset))
proc MonsterStartinventoryVector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(1, numElems, 1)
proc MonsterAddcolor*(builder: var Builder, color: uint8) =
builder.PrependSlot(6, color, default(uint8))
proc MonsterAddtestType*(builder: var Builder, testType: uint8) =
builder.PrependSlot(7, testType, default(uint8))
proc MonsterAddtest*(builder: var Builder, test: uoffset) =
builder.PrependSlot(8, test, default(uoffset))
proc MonsterAddtest4*(builder: var Builder, test4: uoffset) =
builder.PrependSlot(9, test4, default(uoffset))
proc MonsterStarttest4Vector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(4, numElems, 2)
proc MonsterAddtestarrayofstring*(builder: var Builder, testarrayofstring: uoffset) =
builder.PrependSlot(10, testarrayofstring, default(uoffset))
proc MonsterStarttestarrayofstringVector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(4, numElems, 4)
proc MonsterAddtestarrayoftables*(builder: var Builder, testarrayoftables: uoffset) =
builder.PrependSlot(11, testarrayoftables, default(uoffset))
proc MonsterStarttestarrayoftablesVector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(4, numElems, 4)
proc MonsterAddenemy*(builder: var Builder, enemy: uoffset) =
builder.PrependStructSlot(12, enemy, default(uoffset))
proc MonsterAddtestnestedflatbuffer*(builder: var Builder, testnestedflatbuffer: uoffset) =
builder.PrependSlot(13, testnestedflatbuffer, default(uoffset))
proc MonsterStarttestnestedflatbufferVector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(1, numElems, 1)
proc MonsterAddtestempty*(builder: var Builder, testempty: uoffset) =
builder.PrependStructSlot(14, testempty, default(uoffset))
proc MonsterAddtestbool*(builder: var Builder, testbool: bool) =
builder.PrependSlot(15, testbool, default(bool))
proc MonsterAddtesthashs32Fnv1*(builder: var Builder, testhashs32Fnv1: int32) =
builder.PrependSlot(16, testhashs32Fnv1, default(int32))
proc MonsterAddtesthashu32Fnv1*(builder: var Builder, testhashu32Fnv1: uint32) =
builder.PrependSlot(17, testhashu32Fnv1, default(uint32))
proc MonsterAddtesthashs64Fnv1*(builder: var Builder, testhashs64Fnv1: int64) =
builder.PrependSlot(18, testhashs64Fnv1, default(int64))
proc MonsterAddtesthashu64Fnv1*(builder: var Builder, testhashu64Fnv1: uint64) =
builder.PrependSlot(19, testhashu64Fnv1, default(uint64))
proc MonsterAddtesthashs32Fnv1a*(builder: var Builder, testhashs32Fnv1a: int32) =
builder.PrependSlot(20, testhashs32Fnv1a, default(int32))
proc MonsterAddtesthashu32Fnv1a*(builder: var Builder, testhashu32Fnv1a: uint32) =
builder.PrependSlot(21, testhashu32Fnv1a, default(uint32))
proc MonsterAddtesthashs64Fnv1a*(builder: var Builder, testhashs64Fnv1a: int64) =
builder.PrependSlot(22, testhashs64Fnv1a, default(int64))
proc MonsterAddtesthashu64Fnv1a*(builder: var Builder, testhashu64Fnv1a: uint64) =
builder.PrependSlot(23, testhashu64Fnv1a, default(uint64))
proc MonsterAddtestarrayofbools*(builder: var Builder, testarrayofbools: uoffset) =
builder.PrependSlot(24, testarrayofbools, default(uoffset))
proc MonsterStarttestarrayofboolsVector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(1, numElems, 1)
proc MonsterAddtestf*(builder: var Builder, testf: float32) =
builder.PrependSlot(25, testf, default(float32))
proc MonsterAddtestf2*(builder: var Builder, testf2: float32) =
builder.PrependSlot(26, testf2, default(float32))
proc MonsterAddtestf3*(builder: var Builder, testf3: float32) =
builder.PrependSlot(27, testf3, default(float32))
proc MonsterAddtestarrayofstring2*(builder: var Builder, testarrayofstring2: uoffset) =
builder.PrependSlot(28, testarrayofstring2, default(uoffset))
proc MonsterStarttestarrayofstring2Vector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(4, numElems, 4)
proc MonsterAddtestarrayofsortedstruct*(builder: var Builder, testarrayofsortedstruct: uoffset) =
builder.PrependSlot(29, testarrayofsortedstruct, default(uoffset))
proc MonsterStarttestarrayofsortedstructVector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(8, numElems, 4)
proc MonsterAddflex*(builder: var Builder, flex: uoffset) =
builder.PrependSlot(30, flex, default(uoffset))
proc MonsterStartflexVector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(1, numElems, 1)
proc MonsterAddtest5*(builder: var Builder, test5: uoffset) =
builder.PrependSlot(31, test5, default(uoffset))
proc MonsterStarttest5Vector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(4, numElems, 2)
proc MonsterAddvectorOfLongs*(builder: var Builder, vectorOfLongs: uoffset) =
builder.PrependSlot(32, vectorOfLongs, default(uoffset))
proc MonsterStartvectorOfLongsVector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(8, numElems, 8)
proc MonsterAddvectorOfDoubles*(builder: var Builder, vectorOfDoubles: uoffset) =
builder.PrependSlot(33, vectorOfDoubles, default(uoffset))
proc MonsterStartvectorOfDoublesVector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(8, numElems, 8)
proc MonsterAddparentNamespaceTest*(builder: var Builder, parentNamespaceTest: uoffset) =
builder.PrependStructSlot(34, parentNamespaceTest, default(uoffset))
proc MonsterAddvectorOfReferrables*(builder: var Builder, vectorOfReferrables: uoffset) =
builder.PrependSlot(35, vectorOfReferrables, default(uoffset))
proc MonsterStartvectorOfReferrablesVector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(4, numElems, 4)
proc MonsterAddsingleWeakReference*(builder: var Builder, singleWeakReference: uint64) =
builder.PrependSlot(36, singleWeakReference, default(uint64))
proc MonsterAddvectorOfWeakReferences*(builder: var Builder, vectorOfWeakReferences: uoffset) =
builder.PrependSlot(37, vectorOfWeakReferences, default(uoffset))
proc MonsterStartvectorOfWeakReferencesVector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(8, numElems, 8)
proc MonsterAddvectorOfStrongReferrables*(builder: var Builder, vectorOfStrongReferrables: uoffset) =
builder.PrependSlot(38, vectorOfStrongReferrables, default(uoffset))
proc MonsterStartvectorOfStrongReferrablesVector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(4, numElems, 4)
proc MonsterAddcoOwningReference*(builder: var Builder, coOwningReference: uint64) =
builder.PrependSlot(39, coOwningReference, default(uint64))
proc MonsterAddvectorOfCoOwningReferences*(builder: var Builder, vectorOfCoOwningReferences: uoffset) =
builder.PrependSlot(40, vectorOfCoOwningReferences, default(uoffset))
proc MonsterStartvectorOfCoOwningReferencesVector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(8, numElems, 8)
proc MonsterAddnonOwningReference*(builder: var Builder, nonOwningReference: uint64) =
builder.PrependSlot(41, nonOwningReference, default(uint64))
proc MonsterAddvectorOfNonOwningReferences*(builder: var Builder, vectorOfNonOwningReferences: uoffset) =
builder.PrependSlot(42, vectorOfNonOwningReferences, default(uoffset))
proc MonsterStartvectorOfNonOwningReferencesVector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(8, numElems, 8)
proc MonsterAddanyUniqueType*(builder: var Builder, anyUniqueType: uint8) =
builder.PrependSlot(43, anyUniqueType, default(uint8))
proc MonsterAddanyUnique*(builder: var Builder, anyUnique: uoffset) =
builder.PrependSlot(44, anyUnique, default(uoffset))
proc MonsterAddanyAmbiguousType*(builder: var Builder, anyAmbiguousType: uint8) =
builder.PrependSlot(45, anyAmbiguousType, default(uint8))
proc MonsterAddanyAmbiguous*(builder: var Builder, anyAmbiguous: uoffset) =
builder.PrependSlot(46, anyAmbiguous, default(uoffset))
proc MonsterAddvectorOfEnums*(builder: var Builder, vectorOfEnums: uoffset) =
builder.PrependSlot(47, vectorOfEnums, default(uoffset))
proc MonsterStartvectorOfEnumsVector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(1, numElems, 1)
proc MonsterAddsignedEnum*(builder: var Builder, signedEnum: int8) =
builder.PrependSlot(48, signedEnum, default(int8))
proc MonsterAddtestrequirednestedflatbuffer*(builder: var Builder, testrequirednestedflatbuffer: uoffset) =
builder.PrependSlot(49, testrequirednestedflatbuffer, default(uoffset))
proc MonsterStarttestrequirednestedflatbufferVector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(1, numElems, 1)
proc MonsterAddscalarKeySortedTables*(builder: var Builder, scalarKeySortedTables: uoffset) =
builder.PrependSlot(50, scalarKeySortedTables, default(uoffset))
proc MonsterStartscalarKeySortedTablesVector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(4, numElems, 4)
proc MonsterAddnativeInline*(builder: var Builder, nativeInline: uoffset) =
builder.PrependStructSlot(51, nativeInline, default(uoffset))
proc MonsterAddlongEnumNonEnumDefault*(builder: var Builder, longEnumNonEnumDefault: uint64) =
builder.PrependSlot(52, longEnumNonEnumDefault, default(uint64))
proc MonsterAddlongEnumNormalDefault*(builder: var Builder, longEnumNormalDefault: uint64) =
builder.PrependSlot(53, longEnumNormalDefault, default(uint64))
proc MonsterEnd*(builder: var Builder): uoffset =
return builder.EndObject()

View File

@@ -0,0 +1,15 @@
#[ MyGame.Example.Race
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
flatc version: 22.9.29
Declared by :
Rooting type : MyGame.Example.Monster ()
]#
type Race*{.pure.} = enum
None = -1.int8,
Human = 0.int8,
Dwarf = 1.int8,
Elf = 2.int8,

View File

@@ -0,0 +1,26 @@
#[ MyGame.Example.Referrable
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
flatc version: 22.9.29
Declared by :
Rooting type : MyGame.Example.Monster ()
]#
import flatbuffers
type Referrable* = object of FlatObj
func id*(self: Referrable): uint64 =
let o = self.tab.Offset(4)
if o != 0:
return Get[uint64](self.tab, self.tab.Pos + o)
return 0
func `id=`*(self: var Referrable, n: uint64): bool =
return self.tab.MutateSlot(4, n)
proc ReferrableStart*(builder: var Builder) =
builder.StartObject(1)
proc ReferrableAddid*(builder: var Builder, id: uint64) =
builder.PrependSlot(0, id, default(uint64))
proc ReferrableEnd*(builder: var Builder): uoffset =
return builder.EndObject()

View File

@@ -0,0 +1,42 @@
#[ MyGame.Example.Stat
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
flatc version: 22.9.29
Declared by :
Rooting type : MyGame.Example.Monster ()
]#
import flatbuffers
import std/options
type Stat* = object of FlatObj
func id*(self: Stat): Option[string] =
let o = self.tab.Offset(4)
if o != 0:
return some(self.tab.String(self.tab.Pos + o))
func val*(self: Stat): int64 =
let o = self.tab.Offset(6)
if o != 0:
return Get[int64](self.tab, self.tab.Pos + o)
return 0
func `val=`*(self: var Stat, n: int64): bool =
return self.tab.MutateSlot(6, n)
func count*(self: Stat): uint16 =
let o = self.tab.Offset(8)
if o != 0:
return Get[uint16](self.tab, self.tab.Pos + o)
return 0
func `count=`*(self: var Stat, n: uint16): bool =
return self.tab.MutateSlot(8, n)
proc StatStart*(builder: var Builder) =
builder.StartObject(3)
proc StatAddid*(builder: var Builder, id: uoffset) =
builder.PrependSlot(0, id, default(uoffset))
proc StatAddval*(builder: var Builder, val: int64) =
builder.PrependSlot(1, val, default(int64))
proc StatAddcount*(builder: var Builder, count: uint16) =
builder.PrependSlot(2, count, default(uint16))
proc StatEnd*(builder: var Builder): uoffset =
return builder.EndObject()

View File

@@ -0,0 +1,34 @@
#[ MyGame.Example.StructOfStructs
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
flatc version: 22.9.29
Declared by :
Rooting type : MyGame.Example.Monster ()
]#
import Ability as MyGame_Example_Ability
import Test as MyGame_Example_Test
import flatbuffers
type StructOfStructs* = object of FlatObj
func a*(self: StructOfStructs): MyGame_Example_Ability.Ability =
return MyGame_Example_Ability.Ability(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + 0))
func b*(self: StructOfStructs): MyGame_Example_Test.Test =
return MyGame_Example_Test.Test(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + 8))
func c*(self: StructOfStructs): MyGame_Example_Ability.Ability =
return MyGame_Example_Ability.Ability(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + 12))
proc StructOfStructsCreate*(self: var Builder, a_id: uint32, a_distance: uint32, b_a: int16, b_b: int8, c_id: uint32, c_distance: uint32): uoffset =
self.Prep(4, 20)
self.Prep(4, 8)
self.Prepend(c_distance)
self.Prepend(c_id)
self.Prep(2, 4)
self.Pad(1)
self.Prepend(b_b)
self.Prepend(b_a)
self.Prep(4, 8)
self.Prepend(a_distance)
self.Prepend(a_id)
return self.Offset()

View File

@@ -0,0 +1,30 @@
#[ MyGame.Example.StructOfStructsOfStructs
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
flatc version: 22.9.29
Declared by :
Rooting type : MyGame.Example.Monster ()
]#
import StructOfStructs as MyGame_Example_StructOfStructs
import flatbuffers
type StructOfStructsOfStructs* = object of FlatObj
func a*(self: StructOfStructsOfStructs): MyGame_Example_StructOfStructs.StructOfStructs =
return MyGame_Example_StructOfStructs.StructOfStructs(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + 0))
proc StructOfStructsOfStructsCreate*(self: var Builder, a_a_id: uint32, a_a_distance: uint32, a_b_a: int16, a_b_b: int8, a_c_id: uint32, a_c_distance: uint32): uoffset =
self.Prep(4, 20)
self.Prep(4, 20)
self.Prep(4, 8)
self.Prepend(a_c_distance)
self.Prepend(a_c_id)
self.Prep(2, 4)
self.Pad(1)
self.Prepend(a_b_b)
self.Prepend(a_b_a)
self.Prep(4, 8)
self.Prepend(a_a_distance)
self.Prepend(a_a_id)
return self.Offset()

View File

@@ -0,0 +1,27 @@
#[ MyGame.Example.Test
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
flatc version: 22.9.29
Declared by :
Rooting type : MyGame.Example.Monster ()
]#
import flatbuffers
type Test* = object of FlatObj
func a*(self: Test): int16 =
return Get[int16](self.tab, self.tab.Pos + 0)
func `a=`*(self: var Test, n: int16): bool =
return self.tab.Mutate(self.tab.Pos + 0, n)
func b*(self: Test): int8 =
return Get[int8](self.tab, self.tab.Pos + 2)
func `b=`*(self: var Test, n: int8): bool =
return self.tab.Mutate(self.tab.Pos + 2, n)
proc TestCreate*(self: var Builder, a: int16, b: int8): uoffset =
self.Prep(2, 4)
self.Pad(1)
self.Prepend(b)
self.Prepend(a)
return self.Offset()

View File

@@ -0,0 +1,27 @@
#[ MyGame.Example.TestSimpleTableWithEnum
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
flatc version: 22.9.29
Declared by :
Rooting type : MyGame.Example.Monster ()
]#
import Color as MyGame_Example_Color
import flatbuffers
type TestSimpleTableWithEnum* = object of FlatObj
func color*(self: TestSimpleTableWithEnum): MyGame_Example_Color.Color =
let o = self.tab.Offset(4)
if o != 0:
return MyGame_Example_Color.Color(Get[uint8](self.tab, self.tab.Pos + o))
return type(result)(2)
func `color=`*(self: var TestSimpleTableWithEnum, n: MyGame_Example_Color.Color): bool =
return self.tab.MutateSlot(4, n)
proc TestSimpleTableWithEnumStart*(builder: var Builder) =
builder.StartObject(1)
proc TestSimpleTableWithEnumAddcolor*(builder: var Builder, color: uint8) =
builder.PrependSlot(0, color, default(uint8))
proc TestSimpleTableWithEnumEnd*(builder: var Builder): uoffset =
return builder.EndObject()

View File

@@ -0,0 +1,144 @@
#[ MyGame.Example.TypeAliases
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
flatc version: 22.9.29
Declared by :
Rooting type : MyGame.Example.Monster ()
]#
import flatbuffers
import std/options
type TypeAliases* = object of FlatObj
func i8*(self: TypeAliases): int8 =
let o = self.tab.Offset(4)
if o != 0:
return Get[int8](self.tab, self.tab.Pos + o)
return 0
func `i8=`*(self: var TypeAliases, n: int8): bool =
return self.tab.MutateSlot(4, n)
func u8*(self: TypeAliases): uint8 =
let o = self.tab.Offset(6)
if o != 0:
return Get[uint8](self.tab, self.tab.Pos + o)
return 0
func `u8=`*(self: var TypeAliases, n: uint8): bool =
return self.tab.MutateSlot(6, n)
func i16*(self: TypeAliases): int16 =
let o = self.tab.Offset(8)
if o != 0:
return Get[int16](self.tab, self.tab.Pos + o)
return 0
func `i16=`*(self: var TypeAliases, n: int16): bool =
return self.tab.MutateSlot(8, n)
func u16*(self: TypeAliases): uint16 =
let o = self.tab.Offset(10)
if o != 0:
return Get[uint16](self.tab, self.tab.Pos + o)
return 0
func `u16=`*(self: var TypeAliases, n: uint16): bool =
return self.tab.MutateSlot(10, n)
func i32*(self: TypeAliases): int32 =
let o = self.tab.Offset(12)
if o != 0:
return Get[int32](self.tab, self.tab.Pos + o)
return 0
func `i32=`*(self: var TypeAliases, n: int32): bool =
return self.tab.MutateSlot(12, n)
func u32*(self: TypeAliases): uint32 =
let o = self.tab.Offset(14)
if o != 0:
return Get[uint32](self.tab, self.tab.Pos + o)
return 0
func `u32=`*(self: var TypeAliases, n: uint32): bool =
return self.tab.MutateSlot(14, n)
func i64*(self: TypeAliases): int64 =
let o = self.tab.Offset(16)
if o != 0:
return Get[int64](self.tab, self.tab.Pos + o)
return 0
func `i64=`*(self: var TypeAliases, n: int64): bool =
return self.tab.MutateSlot(16, n)
func u64*(self: TypeAliases): uint64 =
let o = self.tab.Offset(18)
if o != 0:
return Get[uint64](self.tab, self.tab.Pos + o)
return 0
func `u64=`*(self: var TypeAliases, n: uint64): bool =
return self.tab.MutateSlot(18, n)
func f32*(self: TypeAliases): float32 =
let o = self.tab.Offset(20)
if o != 0:
return Get[float32](self.tab, self.tab.Pos + o)
return 0.0
func `f32=`*(self: var TypeAliases, n: float32): bool =
return self.tab.MutateSlot(20, n)
func f64*(self: TypeAliases): float64 =
let o = self.tab.Offset(22)
if o != 0:
return Get[float64](self.tab, self.tab.Pos + o)
return 0.0
func `f64=`*(self: var TypeAliases, n: float64): bool =
return self.tab.MutateSlot(22, n)
func v8Length*(self: TypeAliases): int =
let o = self.tab.Offset(24)
if o != 0:
return self.tab.VectorLen(o)
func v8*(self: TypeAliases, j: int): int8 =
let o = self.tab.Offset(24)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 1.uoffset
return Get[int8](self.tab, x)
func v8*(self: TypeAliases): seq[int8] =
let len = self.v8Length
for i in countup(0, len - 1):
result.add(self.v8(i))
func vf64Length*(self: TypeAliases): int =
let o = self.tab.Offset(26)
if o != 0:
return self.tab.VectorLen(o)
func vf64*(self: TypeAliases, j: int): float64 =
let o = self.tab.Offset(26)
if o != 0:
var x = self.tab.Vector(o)
x += j.uoffset * 8.uoffset
return Get[float64](self.tab, x)
func vf64*(self: TypeAliases): seq[float64] =
let len = self.vf64Length
for i in countup(0, len - 1):
result.add(self.vf64(i))
proc TypeAliasesStart*(builder: var Builder) =
builder.StartObject(12)
proc TypeAliasesAddi8*(builder: var Builder, i8: int8) =
builder.PrependSlot(0, i8, default(int8))
proc TypeAliasesAddu8*(builder: var Builder, u8: uint8) =
builder.PrependSlot(1, u8, default(uint8))
proc TypeAliasesAddi16*(builder: var Builder, i16: int16) =
builder.PrependSlot(2, i16, default(int16))
proc TypeAliasesAddu16*(builder: var Builder, u16: uint16) =
builder.PrependSlot(3, u16, default(uint16))
proc TypeAliasesAddi32*(builder: var Builder, i32: int32) =
builder.PrependSlot(4, i32, default(int32))
proc TypeAliasesAddu32*(builder: var Builder, u32: uint32) =
builder.PrependSlot(5, u32, default(uint32))
proc TypeAliasesAddi64*(builder: var Builder, i64: int64) =
builder.PrependSlot(6, i64, default(int64))
proc TypeAliasesAddu64*(builder: var Builder, u64: uint64) =
builder.PrependSlot(7, u64, default(uint64))
proc TypeAliasesAddf32*(builder: var Builder, f32: float32) =
builder.PrependSlot(8, f32, default(float32))
proc TypeAliasesAddf64*(builder: var Builder, f64: float64) =
builder.PrependSlot(9, f64, default(float64))
proc TypeAliasesAddv8*(builder: var Builder, v8: uoffset) =
builder.PrependSlot(10, v8, default(uoffset))
proc TypeAliasesStartv8Vector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(1, numElems, 1)
proc TypeAliasesAddvf64*(builder: var Builder, vf64: uoffset) =
builder.PrependSlot(11, vf64, default(uoffset))
proc TypeAliasesStartvf64Vector*(builder: var Builder, numElems: uoffset) =
builder.StartVector(8, numElems, 8)
proc TypeAliasesEnd*(builder: var Builder): uoffset =
return builder.EndObject()

View File

@@ -0,0 +1,52 @@
#[ MyGame.Example.Vec3
Automatically generated by the FlatBuffers compiler, do not modify.
Or modify. I'm a message, not a cop.
flatc version: 22.9.29
Declared by :
Rooting type : MyGame.Example.Monster ()
]#
import Color as MyGame_Example_Color
import Test as MyGame_Example_Test
import flatbuffers
type Vec3* = object of FlatObj
func x*(self: Vec3): float32 =
return Get[float32](self.tab, self.tab.Pos + 0)
func `x=`*(self: var Vec3, n: float32): bool =
return self.tab.Mutate(self.tab.Pos + 0, n)
func y*(self: Vec3): float32 =
return Get[float32](self.tab, self.tab.Pos + 4)
func `y=`*(self: var Vec3, n: float32): bool =
return self.tab.Mutate(self.tab.Pos + 4, n)
func z*(self: Vec3): float32 =
return Get[float32](self.tab, self.tab.Pos + 8)
func `z=`*(self: var Vec3, n: float32): bool =
return self.tab.Mutate(self.tab.Pos + 8, n)
func test1*(self: Vec3): float64 =
return Get[float64](self.tab, self.tab.Pos + 16)
func `test1=`*(self: var Vec3, n: float64): bool =
return self.tab.Mutate(self.tab.Pos + 16, n)
func test2*(self: Vec3): MyGame_Example_Color.Color =
return MyGame_Example_Color.Color(Get[uint8](self.tab, self.tab.Pos + 24))
func `test2=`*(self: var Vec3, n: MyGame_Example_Color.Color): bool =
return self.tab.Mutate(self.tab.Pos + 24, n)
func test3*(self: Vec3): MyGame_Example_Test.Test =
return MyGame_Example_Test.Test(tab: Vtable(Bytes: self.tab.Bytes, Pos: self.tab.Pos + 26))
proc Vec3Create*(self: var Builder, x: float32, y: float32, z: float32, test1: float64, test2: MyGame_Example_Color.Color, test3_a: int16, test3_b: int8): uoffset =
self.Prep(8, 32)
self.Pad(2)
self.Prep(2, 4)
self.Pad(1)
self.Prepend(test3_b)
self.Prepend(test3_a)
self.Pad(1)
self.Prepend(test2)
self.Prepend(test1)
self.Pad(4)
self.Prepend(z)
self.Prepend(y)
self.Prepend(x)
return self.Offset()