MCPcopy Create free account
hub / github.com/apache/trafficserver / TakeGenerator

Class TakeGenerator

lib/catch2/catch.hpp:4120–4148  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4118
4119 template <typename T>
4120 class TakeGenerator : public IGenerator<T> {
4121 GeneratorWrapper<T> m_generator;
4122 size_t m_returned = 0;
4123 size_t m_target;
4124 public:
4125 TakeGenerator(size_t target, GeneratorWrapper<T>&& generator):
4126 m_generator(std::move(generator)),
4127 m_target(target)
4128 {
4129 assert(target != 0 && "Empty generators are not allowed");
4130 }
4131 T const& get() const override {
4132 return m_generator.get();
4133 }
4134 bool next() override {
4135 ++m_returned;
4136 if (m_returned >= m_target) {
4137 return false;
4138 }
4139
4140 const auto success = m_generator.next();
4141 // If the underlying generator does not contain enough values
4142 // then we cut short as well
4143 if (!success) {
4144 m_returned = m_target;
4145 }
4146 return success;
4147 }
4148 };
4149
4150 template <typename T>
4151 GeneratorWrapper<T> take(size_t target, GeneratorWrapper<T>&& generator) {

Callers

nothing calls this directly

Calls 1

getMethod · 0.45

Tested by

no test coverage detected