Mercurial > prosody-hg
comparison util/set.lua @ 6679:96e034508978
Merge 0.10->trunk
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Wed, 13 May 2015 17:00:27 +0100 |
| parents | cb5b56ddabfd |
| children | 5de6b93d0190 |
comparison
equal
deleted
inserted
replaced
| 6666:42fdc8dddf04 | 6679:96e034508978 |
|---|---|
| 32 end | 32 end |
| 33 end | 33 end |
| 34 return new_set; | 34 return new_set; |
| 35 end | 35 end |
| 36 function set_mt.__eq(set1, set2) | 36 function set_mt.__eq(set1, set2) |
| 37 local set1, set2 = set1._items, set2._items; | 37 set1, set2 = set1._items, set2._items; |
| 38 for item in pairs(set1) do | 38 for item in pairs(set1) do |
| 39 if not set2[item] then | 39 if not set2[item] then |
| 40 return false; | 40 return false; |
| 41 end | 41 end |
| 42 end | 42 end |
| 64 | 64 |
| 65 function new(list) | 65 function new(list) |
| 66 local items = setmetatable({}, items_mt); | 66 local items = setmetatable({}, items_mt); |
| 67 local set = { _items = items }; | 67 local set = { _items = items }; |
| 68 | 68 |
| 69 -- We access the set through an upvalue in these methods, so ignore 'self' being unused | |
| 70 --luacheck: ignore 212/self | |
| 71 | |
| 69 function set:add(item) | 72 function set:add(item) |
| 70 items[item] = true; | 73 items[item] = true; |
| 71 end | 74 end |
| 72 | 75 |
| 73 function set:contains(item) | 76 function set:contains(item) |
| 80 | 83 |
| 81 function set:remove(item) | 84 function set:remove(item) |
| 82 items[item] = nil; | 85 items[item] = nil; |
| 83 end | 86 end |
| 84 | 87 |
| 85 function set:add_list(list) | 88 function set:add_list(item_list) |
| 86 if list then | 89 if item_list then |
| 87 for _, item in ipairs(list) do | 90 for _, item in ipairs(item_list) do |
| 88 items[item] = true; | 91 items[item] = true; |
| 89 end | 92 end |
| 90 end | 93 end |
| 91 end | 94 end |
| 92 | 95 |
