aboutsummaryrefslogtreecommitdiffstats
path: root/vespalib/src/tests/coro/generator/hidden_sequence.cpp
blob: 39eedb4623c09b3cce37c4fadbdc9a4cf1a7fd19 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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);
}