Software /
code /
prosody
Changeset
12744:e894677359e5
util.iterators: join: Work even with only a single iterator in the chain
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 06 Oct 2022 18:34:40 +0100 |
parents | 12743:19113f232423 |
children | 12745:2cbf0e9314ff |
files | spec/util_iterators_spec.lua util/iterators.lua |
diffstat | 2 files changed, 10 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/spec/util_iterators_spec.lua Thu Oct 06 16:00:39 2022 +0100 +++ b/spec/util_iterators_spec.lua Thu Oct 06 18:34:40 2022 +0100 @@ -10,6 +10,14 @@ end assert.same(output, expect); end); + it("should work with only a single iterator", function () + local expect = { "a", "b", "c" }; + local output = {}; + for x in iter.join(iter.values({"a", "b", "c"})) do + table.insert(output, x); + end + assert.same(output, expect); + end); end); describe("sorted_pairs", function ()
--- a/util/iterators.lua Thu Oct 06 16:00:39 2022 +0100 +++ b/util/iterators.lua Thu Oct 06 18:34:40 2022 +0100 @@ -240,7 +240,8 @@ end function it.join(f, s, var) - return setmetatable({ {f, s, var} }, join_mt); + local t = setmetatable({ {f, s, var} }, join_mt); + return t, { t, 1 }; end return it;