forked from BigfootDev/flatbuffers
* 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>
25 lines
728 B
Nim
25 lines
728 B
Nim
import table
|
|
|
|
|
|
type FlatObj* {.inheritable.} = object
|
|
tab*: Vtable
|
|
|
|
func Table*(this: var FlatObj): Vtable = this.tab
|
|
|
|
func Init*(this: var FlatObj; buf: seq[byte]; i: uoffset) =
|
|
this.tab.Bytes = buf
|
|
this.tab.Pos = i
|
|
|
|
# Cant define it in table.nim since it needs FlatObj and Init
|
|
func GetUnion*[T: FlatObj](this: var Vtable; off: uoffset): T =
|
|
result.Init(this.Bytes, this.Indirect(off))
|
|
|
|
func GetRootAs*(result: var FlatObj; buf: seq[byte]; offset: uoffset) =
|
|
var
|
|
vtable = Vtable(Bytes: buf[offset..^1], Pos: offset)
|
|
n = Get[uoffset](vtable, offset)
|
|
result.Init(buf, n+offset)
|
|
|
|
func GetRootAs*(result: var FlatObj; buf: string; offset: uoffset) =
|
|
result.GetRootAs(cast[seq[byte]](buf), offset)
|