util/iterators.lua
changeset 9330 f6f1dec164b5
parent 8800 7b621a4a2e8d
child 9692 eade1316728e
--- a/util/iterators.lua	Mon Sep 17 15:28:53 2018 +0100
+++ b/util/iterators.lua	Fri Sep 21 14:27:46 2018 +0100
@@ -177,6 +177,19 @@
 	return t;
 end
 
+function it.sorted_pairs(t, sort_func)
+	local keys = it.to_array(it.keys(t));
+	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
+
 -- Treat the return of an iterator as key,value pairs,
 -- and build a table
 function it.to_table(f, s, var)