35 lines
592 B
Lua
35 lines
592 B
Lua
local table_insert = table.insert
|
|
|
|
---@class List
|
|
local list_mt = {}
|
|
list_mt.__index = list_mt
|
|
|
|
function list_mt:push(value)
|
|
table_insert(self, value)
|
|
return self
|
|
end
|
|
|
|
function list_mt:unshift(value)
|
|
table_insert(self, 1, value)
|
|
return self
|
|
end
|
|
|
|
function list_mt:append(...)
|
|
for _, value in pairs({...}) do
|
|
table_insert(self, value)
|
|
end
|
|
return self
|
|
end
|
|
|
|
function list_mt:contitional_append(check, ...)
|
|
if not check then return self end
|
|
for _, value in pairs({...}) do
|
|
table_insert(self, value)
|
|
end
|
|
return self
|
|
end
|
|
|
|
return function(t)
|
|
return setmetatable(t or {}, list_mt)
|
|
end
|