| 618 | |
| 619 | iterator begin() const noexcept { return {string_view_type(haystack_), matcher_}; } |
| 620 | iterator end() const noexcept { return {string_view_type(haystack_.data() + haystack_.size(), 0ull), matcher_}; } |
| 621 | size_type size() const noexcept { return static_cast<size_type>(ssize()); } |
| 622 | difference_type ssize() const noexcept { return std::distance(begin(), end()); } |
| 623 | bool empty() const noexcept { return begin() == end_sentinel_type {}; } |