#pragma once #include #ifdef USE_COROUTINES #if __cplusplus >= 202002L # include #else # include #endif # include #endif #include "parser_t.h" #include "test_t.h" class opcode_test_suite_t final : public parser_t { private: [[nodiscard]] auto array() const noexcept { return raw().get_array(); } public: opcode_test_suite_t() noexcept {} opcode_test_suite_t(std::string path) noexcept; [[nodiscard]] auto begin() const noexcept { return array().begin(); } [[nodiscard]] auto end() const noexcept { return array().end(); } [[nodiscard]] auto size() const noexcept { return array().size(); } #ifdef USE_COROUTINES #if __cplusplus >= 202002L [[nodiscard]] EightBit::co_generator_t generator() const; #else void generator(boost::coroutines2::coroutine::push_type& sink) const; #endif #else std::vector generate() const; #endif };