From 7d33f5bb5efaf880096e70da74cfb7e830ee7625 Mon Sep 17 00:00:00 2001 From: Michael Forney Date: Mon, 22 Jun 2020 00:10:48 -0700 Subject: Add sortedpairs helper function --- ninja.lua | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'ninja.lua') diff --git a/ninja.lua b/ninja.lua index 6cf3cabf..29e1ed31 100644 --- a/ninja.lua +++ b/ninja.lua @@ -20,12 +20,20 @@ local function collect(f, s, i) end -- collects the keys of a table into a sorted table -function table.keys(t) +function table.keys(t, f) local keys = collect(next, t) - table.sort(keys) + table.sort(keys, f) return keys end +-- iterates over the sorted keys and values of a table +function sortedpairs(t, f) + return function(s, i) + local k = s[i] + return k and i + 1, k, t[k] + end, table.keys(t, f), 1 +end + -- yields string values of table or nested tables local function stringsgen(t) for _, val in ipairs(t) do -- cgit v1.2.3