Software /
code /
prosody
Comparison
util/iterators.lua @ 9327:f6f1dec164b5
util.iterators: Add sorted_pairs() method
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 21 Sep 2018 14:27:46 +0100 |
parent | 8797:7b621a4a2e8d |
child | 9688:eade1316728e |
comparison
equal
deleted
inserted
replaced
9326:c9c4b8bc53b1 | 9327:f6f1dec164b5 |
---|---|
175 t_insert(t, var); | 175 t_insert(t, var); |
176 end | 176 end |
177 return t; | 177 return t; |
178 end | 178 end |
179 | 179 |
180 function it.sorted_pairs(t, sort_func) | |
181 local keys = it.to_array(it.keys(t)); | |
182 table.sort(keys, sort_func); | |
183 local i = 0; | |
184 return function () | |
185 i = i + 1; | |
186 local key = keys[i]; | |
187 if key ~= nil then | |
188 return key, t[key]; | |
189 end | |
190 end; | |
191 end | |
192 | |
180 -- Treat the return of an iterator as key,value pairs, | 193 -- Treat the return of an iterator as key,value pairs, |
181 -- and build a table | 194 -- and build a table |
182 function it.to_table(f, s, var) | 195 function it.to_table(f, s, var) |
183 local t, var2 = {}; | 196 local t, var2 = {}; |
184 while true do | 197 while true do |