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

  flatc version: 22.10.25

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