From 196117c3f23809393315df505dcd1d5c8b33b6dd Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Sun, 26 Mar 2023 13:07:20 +0200 Subject: util.set: Add a serialization preparation metamethod Enables util.serialization to turn Sets into a representation that can be deserialized with an environment trick, i.e. `set{"a","b"}`. Also useful for debug purposes. --- util/set.lua | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/util/set.lua b/util/set.lua index 69dfef5d..a2704f6c 100644 --- a/util/set.lua +++ b/util/set.lua @@ -189,6 +189,15 @@ function set_mt.__tostring(set) return t_concat(s, ", "); end +function set_mt.__freeze(set) + local s = {}; + for item in pairs(set._items) do + s[#s + 1] = item; + end + return s; +end + + return { new = new; is_set = is_set; -- cgit v1.2.3