| 134 | } |
| 135 | |
| 136 | std::string_view StringConsumer::PeekUntil(std::string_view str, SeparatorUsage sep) const |
| 137 | { |
| 138 | assert(!str.empty()); |
| 139 | auto buf = this->src.substr(this->position); |
| 140 | auto len = buf.find(str); |
| 141 | if (len != std::string_view::npos) { |
| 142 | switch (sep) { |
| 143 | case READ_ONE_SEPARATOR: |
| 144 | if (buf.compare(len, str.size(), str) == 0) len += str.size(); |
| 145 | break; |
| 146 | case READ_ALL_SEPARATORS: |
| 147 | while (buf.compare(len, str.size(), str) == 0) len += str.size(); |
| 148 | break; |
| 149 | default: |
| 150 | break; |
| 151 | } |
| 152 | } |
| 153 | return buf.substr(0, len); |
| 154 | } |
| 155 | |
| 156 | std::string_view StringConsumer::PeekUntilUtf8(char32_t c, SeparatorUsage sep) const |
| 157 | { |
no test coverage detected