From f5967d9f35eaaeb8ac797f91c03d98b54841516c Mon Sep 17 00:00:00 2001 From: rebecca Date: Sat, 26 Sep 2026 21:47:15 +0100 Subject: delete Set because it is bad and replace it with table.keydiff which will be good and not bad --- set.lua | 20 -------------------- table.lua | 10 ++++++++++ 2 files changed, 10 insertions(+), 20 deletions(-) delete mode 100644 set.lua create mode 100644 table.lua diff --git a/set.lua b/set.lua deleted file mode 100644 index ae79ff1..0000000 --- a/set.lua +++ /dev/null @@ -1,20 +0,0 @@ -local class = require'r.class' -local Set = class() -function Set.make(cls, items) return setmetatable({_=items or {}},cls) end -function Set.has(self, item) return self._[item] end -function Set.add(self, item) self._[item] = true end -function Set.del(self, item) self._[item] = nil end -function Set.each(self) return pairs(self._) end -function Set.one(self) return next(self._) end -function Set.__len(self) local i = 0 for k in self:each() do i=i+1 end return i end -function Set.copy(self) local o={} for k in self:each() do o[k]=true end return Set(o) end -function Set.union(self,other) local o=self:copy() if other == nil then return o end - for k in other:each() do o:add(k) end return o end -function Set.insect(self,other) local o=self:copy() if other == nil then return o end - for k in o:each() do if not other:has(k) then o:del(k) end end return o end -function Set.diff(self,other) local o,p = self:copy(), other:copy() - for k in self:each() do p:del(k) end - for k in other:each() do o:del(k) end - return o,p end -return Set - diff --git a/table.lua b/table.lua new file mode 100644 index 0000000..3f7f322 --- /dev/null +++ b/table.lua @@ -0,0 +1,10 @@ +local function keydiff(a, b) + local da,db = {}, {} + for k in pairs(a) do if b[k] == nil then da[k] = true end + for k in pairs(b) do if a[k] == nil then db[k] = true end + return da, db +end + +return { + keydiff = keydiff, +} -- cgit v1.2.3