diff options
| author | Michael Forney <mforney@mforney.org> | 2020-06-22 00:10:48 -0700 |
|---|---|---|
| committer | Michael Forney <mforney@mforney.org> | 2020-06-22 22:59:35 -0700 |
| commit | 7d33f5bb5efaf880096e70da74cfb7e830ee7625 (patch) | |
| tree | 3853b96474f613f74b848e8ab7cf1eed14f86b61 /ninja.lua | |
| parent | b4ced98b9dd28062a7990592b7723b8916448679 (diff) | |
Add sortedpairs helper function
Diffstat (limited to 'ninja.lua')
| -rw-r--r-- | ninja.lua | 12 |
1 files changed, 10 insertions, 2 deletions
@@ -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 |
