AoC code coverage
Current view: top level - aoclib - Regex.h (source / functions) Coverage Total Hit
Test: master Lines: 100.0 % 7 7
Test Date: 2025-07-28 10:53:57 Functions: 100.0 % 9 9

            Line data    Source code
       1              : #pragma once
       2              : 
       3              : #include <re2/re2.h>
       4              : 
       5              : #include <generator>
       6              : #include <string_view>
       7              : #include <tuple>
       8              : 
       9              : template <class... Args> class FindAndConsume {
      10              : public:
      11            5 :   FindAndConsume(std::string_view const regex) : _regex(regex) {}
      12              : 
      13              :   using Result = std::tuple<Args...>;
      14              : 
      15           26 :   std::generator<Result> operator()(std::string_view s) const {
      16           26 :     std::tuple<Args...> parsedValues;
      17         2253 :     auto f = [&](auto &...args) { return RE2::FindAndConsume(&s, _regex, &args...); };
      18         2253 :     while (std::apply(f, parsedValues))
      19         2227 :       co_yield parsedValues;
      20           26 :   }
      21              : 
      22              : private:
      23              :   RE2 _regex;
      24              : };
        

Generated by: LCOV version 2.0-1