Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYury Melnichek <melnichek@gmail.com>2013-02-07 04:07:56 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:49:47 +0300
commit056f14ef4eb80c65224b37801927a0626682c1de (patch)
treea254ed85bf46606deff9e84d0c91d19889ffb6a1 /indexer/search_string_utils.hpp
parent7fdac1d3bd3c2858c1025c25d96ef832e2b5b241 (diff)
[search] Keyword Matcher rewrite.
Diffstat (limited to 'indexer/search_string_utils.hpp')
-rw-r--r--indexer/search_string_utils.hpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/indexer/search_string_utils.hpp b/indexer/search_string_utils.hpp
index 1503b5d4d8..f845a43bf0 100644
--- a/indexer/search_string_utils.hpp
+++ b/indexer/search_string_utils.hpp
@@ -23,4 +23,24 @@ void SplitUniString(strings::UniString const & uniS, F f, DelimsT const & delims
strings::UniString FeatureTypeToString(uint32_t type);
+template <class ContainerT, class DelimsT>
+bool TokenizeStringAndCheckIfLastTokenIsPrefix(strings::UniString const & s,
+ ContainerT & tokens,
+ DelimsT const & delimiter)
+{
+ SplitUniString(s, MakeBackInsertFunctor(tokens), delimiter);
+ return !s.empty() && !delimiter(s.back());
+}
+
+
+template <class ContainerT, class DelimsT>
+bool TokenizeStringAndCheckIfLastTokenIsPrefix(string const & s,
+ ContainerT & tokens,
+ DelimsT const & delimiter)
+{
+ return TokenizeStringAndCheckIfLastTokenIsPrefix(NormalizeAndSimplifyString(s),
+ tokens,
+ delimiter);
+}
+
} // namespace search