aboutsummaryrefslogtreecommitdiffstats
path: root/vespalib/src/tests/coro/generator/hidden_sequence.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'vespalib/src/tests/coro/generator/hidden_sequence.cpp')
-rw-r--r--vespalib/src/tests/coro/generator/hidden_sequence.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/vespalib/src/tests/coro/generator/hidden_sequence.cpp b/vespalib/src/tests/coro/generator/hidden_sequence.cpp
new file mode 100644
index 00000000000..39eedb4623c
--- /dev/null
+++ b/vespalib/src/tests/coro/generator/hidden_sequence.cpp
@@ -0,0 +1,21 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include "hidden_sequence.h"
+
+namespace {
+
+struct MyHiddenSeq : vespalib::Sequence<size_t> {
+ const std::vector<size_t> &data;
+ size_t pos;
+ MyHiddenSeq(const std::vector<size_t> &data_in)
+ : data(data_in), pos(0) {}
+ bool valid() const override { return pos < data.size(); }
+ size_t get() const override { return data[pos]; }
+ void next() override { ++pos; }
+};
+
+}
+
+vespalib::Sequence<size_t>::UP make_ext_seq(const std::vector<size_t> &data) {
+ return std::make_unique<MyHiddenSeq>(data);
+}