MCPcopy Create free account
hub / github.com/catboost/catboost / LookupTableByName

Function LookupTableByName

contrib/libs/flatbuffers/src/idl_parser.cpp:140–162  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

138
139template<typename T>
140static T *LookupTableByName(const SymbolTable<T> &table,
141 const std::string &name,
142 const Namespace &current_namespace,
143 size_t skip_top) {
144 const auto &components = current_namespace.components;
145 if (table.dict.empty()) return nullptr;
146 if (components.size() < skip_top) return nullptr;
147 const auto N = components.size() - skip_top;
148 std::string full_name;
149 for (size_t i = 0; i < N; i++) {
150 full_name += components[i];
151 full_name += '.';
152 }
153 for (size_t i = N; i > 0; i--) {
154 full_name += name;
155 auto obj = table.Lookup(full_name);
156 if (obj) return obj;
157 auto len = full_name.size() - components[i - 1].size() - 1 - name.size();
158 full_name.resize(len);
159 }
160 FLATBUFFERS_ASSERT(full_name.empty());
161 return table.Lookup(name); // lookup in global namespace
162}
163
164// Declare tokens we'll use. Single character tokens are represented by their
165// ascii character code (e.g. '{'), others above 256.

Callers 2

LookupEnumMethod · 0.85

Calls 4

emptyMethod · 0.45
sizeMethod · 0.45
LookupMethod · 0.45
resizeMethod · 0.45

Tested by

no test coverage detected