Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local raw = {}
- local find = function(tbl, ind)
- for i, v in pairs(raw) do
- if v[1] == ind then
- return i,v
- end
- end
- end
- local mpairs = function(tbl)
- local raw = tbl.___getraw()
- return ipairs(raw)
- end
- local meta = setmetatable({___getraw = function() return raw end}, {
- __newindex = function(self, index, value)
- local i,v = find(raw, index)
- if v then
- if value == nil then
- table.remove(raw, i)
- else
- raw[i][2] = value
- end
- else
- table.insert(raw, {index, value})
- end
- end,
- __index = function(self, index)
- local i, v = find(raw, index)
- return v
- end,
- })
- meta.a = 1
- meta.b = 2
- meta.c = 3
- meta.d = 4
- for _,vals in mpairs(meta) do
- local i, v = unpack(vals)
- print(i,v)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement