util.set: Add freeze metamethod
authorKim Alvefur <zash@zash.se>
Fri, 12 Oct 2018 00:51:56 +0200
changeset 9491 a96a2fbcc6c0
parent 9490 4e38121a349d
child 9492 09b873ac7eb8
util.set: Add freeze metamethod
util/set.lua
--- a/util/set.lua	Fri Oct 12 00:51:52 2018 +0200
+++ b/util/set.lua	Fri Oct 12 00:51:56 2018 +0200
@@ -23,6 +23,14 @@
 	return next(items, k);
 end
 
+function set_mt:__freeze()
+	local a, i = {}, 1;
+	for item in self._items do
+		a[i], i = item, i+1;
+	end
+	return a;
+end
+
 local function new(list)
 	local items = setmetatable({}, items_mt);
 	local set = { _items = items };