MCPcopy Create free account
hub / github.com/Open-GD/OpenGD / contains

Function contains

Source/external/json.hpp:14259–14336  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

14257 */
14258 template<typename BasicJsonType>
14259 bool contains(const BasicJsonType* ptr) const
14260 {
14261 for (const auto& reference_token : reference_tokens)
14262 {
14263 switch (ptr->type())
14264 {
14265 case detail::value_t::object:
14266 {
14267 if (!ptr->contains(reference_token))
14268 {
14269 // we did not find the key in the object
14270 return false;
14271 }
14272
14273 ptr = &ptr->operator[](reference_token);
14274 break;
14275 }
14276
14277 case detail::value_t::array:
14278 {
14279 if (JSON_HEDLEY_UNLIKELY(reference_token == "-"))
14280 {
14281 // "-" always fails the range check
14282 return false;
14283 }
14284 if (JSON_HEDLEY_UNLIKELY(reference_token.size() == 1 && !("0" <= reference_token && reference_token <= "9")))
14285 {
14286 // invalid char
14287 return false;
14288 }
14289 if (JSON_HEDLEY_UNLIKELY(reference_token.size() > 1))
14290 {
14291 if (JSON_HEDLEY_UNLIKELY(!('1' <= reference_token[0] && reference_token[0] <= '9')))
14292 {
14293 // first char should be between '1' and '9'
14294 return false;
14295 }
14296 for (std::size_t i = 1; i < reference_token.size(); i++)
14297 {
14298 if (JSON_HEDLEY_UNLIKELY(!('0' <= reference_token[i] && reference_token[i] <= '9')))
14299 {
14300 // other char should be between '0' and '9'
14301 return false;
14302 }
14303 }
14304 }
14305
14306 const auto idx = array_index<BasicJsonType>(reference_token);
14307 if (idx >= ptr->size())
14308 {
14309 // index out of range
14310 return false;
14311 }
14312
14313 ptr = &ptr->operator[](idx);
14314 break;
14315 }
14316

Callers

nothing calls this directly

Calls 4

is_objectFunction · 0.85
operator[]Method · 0.80
sizeMethod · 0.80
endMethod · 0.80

Tested by

no test coverage detected