30 lines
526 B
Lua
30 lines
526 B
Lua
Set = {}
|
|
function Set:new(o)
|
|
o = o or {} -- create object if user does not provide one
|
|
setmetatable(o, self)
|
|
self.__index = self
|
|
o.list = o.list or {}
|
|
return o
|
|
end
|
|
function Set:contains(elem)
|
|
for k,v in pairs(self.list) do
|
|
if v == elem then
|
|
return true
|
|
end
|
|
end
|
|
|
|
return false
|
|
end
|
|
function Set:add(elem)
|
|
if not self:contains(elem) then
|
|
self.list[#self.list+1] = elem
|
|
end
|
|
end
|
|
function Set:remove(elem)
|
|
for i,v in pairs(self.list) do
|
|
if v == elem then
|
|
table.remove(self.list, i)
|
|
break
|
|
end
|
|
end
|
|
end |