NOLINT
| 43 | [[nodiscard]] constexpr std::size_t size() const { return size_; } // NOLINT |
| 44 | [[nodiscard]] constexpr bool empty() const { return size() == 0; } // NOLINT |
| 45 | [[nodiscard]] StringView substr(std::size_t beg, std::size_t n) const { // NOLINT |
| 46 | CHECK_LE(beg, size_); |
| 47 | std::size_t len = std::min(n, size_ - beg); |
| 48 | return {str_ + beg, len}; |
| 49 | } |
| 50 | [[nodiscard]] value_type const* c_str() const { return str_; } // NOLINT |
| 51 | |
| 52 | [[nodiscard]] constexpr const_iterator cbegin() const { return str_; } // NOLINT |
no outgoing calls