| 114 | TokensContainerT m_stats; |
| 115 | |
| 116 | void operator()(int8_t langCode, std::string_view name) |
| 117 | { |
| 118 | CHECK(!name.empty(), ("Feature name is empty")); |
| 119 | |
| 120 | auto const tokens = search::NormalizeAndTokenizeString(name); |
| 121 | for (size_t i = 1; i < tokens.size(); ++i) |
| 122 | { |
| 123 | strings::UniString s; |
| 124 | for (size_t numTokens = 0; numTokens < i; ++numTokens) |
| 125 | { |
| 126 | s.append(tokens[numTokens].begin(), tokens[numTokens].end()); |
| 127 | s.push_back(' '); |
| 128 | } |
| 129 | auto [iter, found] = m_stats[langCode].emplace(s, std::make_pair(1U, name)); |
| 130 | if (!found) |
| 131 | iter->second.first++; |
| 132 | } |
| 133 | } |
| 134 | |
| 135 | void operator()(FeatureType & f, uint32_t) { f.ForEachName(*this); } |
| 136 | }; |
nothing calls this directly
no test coverage detected