--[[ MyGame.Example.Referrable

  Automatically generated by the FlatBuffers compiler, do not modify.
  Or modify. I'm a message, not a cop.

  flatc version: 22.10.26

  Declared by  : //monster_test.fbs
  Rooting type : MyGame.Example.Monster (//monster_test.fbs)

--]]

local flatbuffers = require('flatbuffers')

local Referrable = {}
local mt = {}

function Referrable.New()
  local o = {}
  setmetatable(o, {__index = mt})
  return o
end

function mt:Init(buf, pos)
  self.view = flatbuffers.view.New(buf, pos)
end

function mt:Id()
  local o = self.view:Offset(4)
  if o ~= 0 then
    return self.view:Get(flatbuffers.N.Uint64, self.view.pos + o)
  end
  return 0
end

function Referrable.Start(builder)
  builder:StartObject(1)
end

function Referrable.AddId(builder, id)
  builder:PrependUint64Slot(0, id, 0)
end

function Referrable.End(builder)
  return builder:EndObject()
end

return Referrable