#[ MyGame.Example.Test
  Automatically generated by the FlatBuffers compiler, do not modify.
  Or modify. I'm a message, not a cop.

  flatc version: 24.3.7

  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()
