| 565 | } // namespace |
| 566 | |
| 567 | string DropLastToken(string const & str) |
| 568 | { |
| 569 | search::Delimiters delims; |
| 570 | using Iter = utf8::unchecked::iterator<string::const_iterator>; |
| 571 | |
| 572 | // Find start iterator of prefix in input query. |
| 573 | Iter iter(str.end()); |
| 574 | while (iter.base() != str.begin()) |
| 575 | { |
| 576 | Iter prev = iter; |
| 577 | --prev; |
| 578 | |
| 579 | if (delims(*prev)) |
| 580 | break; |
| 581 | |
| 582 | iter = prev; |
| 583 | } |
| 584 | |
| 585 | return string(str.begin(), iter.base()); |
| 586 | } |
| 587 | |
| 588 | UniString GetStreetNameAsKey(std::string_view name, bool ignoreStreetSynonyms) |
| 589 | { |
no test coverage detected