forked from BigfootDev/flatbuffers
[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:
24
nim/flatbuffers/src/struct.nim
Normal file
24
nim/flatbuffers/src/struct.nim
Normal file
@@ -0,0 +1,24 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user