osrm-backend/src/extractor/suffix_table.cpp

38 lines
920 B
C++
Raw Normal View History

2016-04-22 05:31:46 -04:00
#include "extractor/suffix_table.hpp"
#include "extractor/scripting_environment.hpp"
2016-04-22 05:31:46 -04:00
#include <algorithm>
#include <iterator>
2016-04-22 05:31:46 -04:00
#include <boost/algorithm/string.hpp>
namespace osrm
{
namespace extractor
{
SuffixTable::SuffixTable(ScriptingEnvironment &scripting_environment)
2016-04-22 05:31:46 -04:00
{
suffixes = scripting_environment.GetNameSuffixList();
for (auto &suffix : suffixes)
2016-04-22 05:31:46 -04:00
boost::algorithm::to_lower(suffix);
auto into = std::inserter(suffix_set, end(suffix_set));
auto to_view = [](const auto &s) { return util::StringView{s}; };
std::transform(begin(suffixes), end(suffixes), into, to_view);
2016-04-22 05:31:46 -04:00
}
bool SuffixTable::isSuffix(const std::string &possible_suffix) const
{
return isSuffix(util::StringView{possible_suffix});
}
bool SuffixTable::isSuffix(util::StringView possible_suffix) const
2016-04-22 05:31:46 -04:00
{
return suffix_set.count(possible_suffix) > 0;
}
} /* namespace extractor */
} /* namespace osrm */