| 337 | } |
| 338 | |
| 339 | TStringBuf CutWWWNumberedPrefix(const TStringBuf url Y_LIFETIME_BOUND) noexcept { |
| 340 | auto it = url.begin(); |
| 341 | |
| 342 | StripRangeBegin(it, url.end(), [](auto& it){ return *it == 'w' || *it == 'W'; }); |
| 343 | if (it == url.begin()) { |
| 344 | return url; |
| 345 | } |
| 346 | |
| 347 | StripRangeBegin(it, url.end(), [](auto& it){ return IsAsciiDigit(*it); }); |
| 348 | if (it == url.end()) { |
| 349 | return url; |
| 350 | } |
| 351 | |
| 352 | if (*it++ == '.') { |
| 353 | return url.Tail(it - url.begin()); |
| 354 | } |
| 355 | |
| 356 | return url; |
| 357 | } |
| 358 | |
| 359 | TStringBuf CutMPrefix(const TStringBuf url Y_LIFETIME_BOUND) noexcept { |
| 360 | if (url.size() >= 2 && url[1] == '.' && (url[0] == 'm' || url[0] == 'M')) { |
no test coverage detected