#ifndef FUD_UTF8_ITERATOR_HPP #define FUD_UTF8_ITERATOR_HPP #include "string.hpp" #include "utf8.hpp" #include #include namespace fud { class Utf8Iterator { private: size_t m_index{0}; // NOLINTBEGIN(cppcoreguidelines-avoid-const-or-ref-data-members) const StringView m_view; // NOLINTEND(cppcoreguidelines-avoid-const-or-ref-data-members) public: explicit constexpr Utf8Iterator(const String& extString) : m_view{extString} { } explicit constexpr Utf8Iterator(const StringView& view) : m_view{view} { } constexpr void reset() { m_index = 0; } [[nodiscard]] std::optional peek() const; std::optional next(); }; } // namespace fud #endif