diff options
author | Matthew Wild <mwild1@gmail.com> | 2022-10-06 18:34:40 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2022-10-06 18:34:40 +0100 |
commit | 08b49654d9bfd6a280e336d834f4bcfee8bda8e1 (patch) | |
tree | cdc96abc1ec24589163565d6192685d8ec79647a | |
parent | 12fc0febf172dd25d403af6365f3e5042b06d6dd (diff) | |
download | prosody-08b49654d9bfd6a280e336d834f4bcfee8bda8e1.tar.gz prosody-08b49654d9bfd6a280e336d834f4bcfee8bda8e1.zip |
util.iterators: join: Work even with only a single iterator in the chain
-rw-r--r-- | spec/util_iterators_spec.lua | 8 | ||||
-rw-r--r-- | util/iterators.lua | 3 |
2 files changed, 10 insertions, 1 deletions
diff --git a/spec/util_iterators_spec.lua b/spec/util_iterators_spec.lua index 4cf6f19d..a4b85884 100644 --- a/spec/util_iterators_spec.lua +++ b/spec/util_iterators_spec.lua @@ -10,6 +10,14 @@ describe("util.iterators", function () 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 () diff --git a/util/iterators.lua b/util/iterators.lua index 4529697a..eb4c54af 100644 --- a/util/iterators.lua +++ b/util/iterators.lua @@ -240,7 +240,8 @@ function join_methods:prepend(f, s, var) 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; |