Changeset

11542:c358537c0878 0.11

util.set: Add is_set() to test if an object is a set
author Matthew Wild <mwild1@gmail.com>
date Mon, 10 May 2021 16:41:56 +0100
parents 11541:13b84682518e
children 11543:63fd4c8465fb
files util/set.lua
diffstat 1 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/util/set.lua	Mon May 10 16:24:54 2021 +0100
+++ b/util/set.lua	Mon May 10 16:41:56 2021 +0100
@@ -6,8 +6,8 @@
 -- COPYING file in the source package for more information.
 --
 
-local ipairs, pairs, setmetatable, next, tostring =
-      ipairs, pairs, setmetatable, next, tostring;
+local ipairs, pairs, getmetatable, setmetatable, next, tostring =
+      ipairs, pairs, getmetatable, setmetatable, next, tostring;
 local t_concat = table.concat;
 
 local _ENV = nil;
@@ -31,6 +31,11 @@
 	return a;
 end
 
+local function is_set(o)
+	local mt = getmetatable(o);
+	return mt == set_mt;
+end
+
 local function new(list)
 	local items = setmetatable({}, items_mt);
 	local set = { _items = items };
@@ -171,6 +176,7 @@
 
 return {
 	new = new;
+	is_set = is_set;
 	union = union;
 	difference = difference;
 	intersection = intersection;