scansion/helpers.lua

changeset 178
e547ddf8b64d
parent 173
14ed4cb241f4
--- a/scansion/helpers.lua	Thu Mar 23 15:16:00 2023 +0000
+++ b/scansion/helpers.lua	Thu Mar 23 15:30:32 2023 +0000
@@ -27,7 +27,22 @@
 	return stanza;
 end
 
+local function sorted_pairs(t, sort_func)
+	local keys = {};
+	for k in pairs(t) do table.insert(keys, k); end
+	table.sort(keys, sort_func);
+	local i = 0;
+	return function ()
+		i = i + 1;
+		local key = keys[i];
+		if key ~= nil then
+			return key, t[key];
+		end
+	end;
+end
+
 return {
 	filter_expression = filter_expression;
 	fill_vars = fill_vars;
+	sorted_pairs = sorted_pairs;
 };

mercurial