Module:FunList: Difference between revisions

Define metatable outside of ctor
(Add function overrides (as far as possible in Lua anyway) to first and firstordefault)
(Define metatable outside of ctor)
 
Line 1: Line 1:
local funlist = {}
local funlist = {}
funlist.__index = funlist
local funlist_mt = {
__index = funlist,
__pairs = function(t) return pairs(t.mytable) end,
__ipairs = function(t) return ipairs(t.mytable) end
}


-- Constructor
-- Constructor
function funlist.new(tbl)
function funlist.new(tbl)
     assert(type(tbl) == 'table')
     assert(type(tbl) == 'table', 'Value must be a non-nil table.')
 
    local self = setmetatable({}, {
local self = setmetatable({}, funlist_mt)
        __index = funlist,
        __pairs = function(self) return pairs(self.mytable) end,
        __ipairs = function(self) return ipairs(self.mytable) end
    })
      
      
self.mytable = tbl
self.mytable = tbl
2,873

edits