1 #include "extractor/suffix_table.hpp"
2 #include "extractor/scripting_environment.hpp"
3 
4 #include <algorithm>
5 #include <iterator>
6 
7 #include <boost/algorithm/string.hpp>
8 
9 namespace osrm
10 {
11 namespace extractor
12 {
13 
SuffixTable(ScriptingEnvironment & scripting_environment)14 SuffixTable::SuffixTable(ScriptingEnvironment &scripting_environment)
15 {
16     suffixes = scripting_environment.GetNameSuffixList();
17 
18     for (auto &suffix : suffixes)
19         boost::algorithm::to_lower(suffix);
20 
21     auto into = std::inserter(suffix_set, end(suffix_set));
22     auto to_view = [](const auto &s) { return util::StringView{s}; };
23     std::transform(begin(suffixes), end(suffixes), into, to_view);
24 }
25 
isSuffix(const std::string & possible_suffix) const26 bool SuffixTable::isSuffix(const std::string &possible_suffix) const
27 {
28     return isSuffix(util::StringView{possible_suffix});
29 }
30 
isSuffix(util::StringView possible_suffix) const31 bool SuffixTable::isSuffix(util::StringView possible_suffix) const
32 {
33     return suffix_set.count(possible_suffix) > 0;
34 }
35 
36 } /* namespace extractor */
37 } /* namespace osrm */
38