324{
326 dynamic_cast<const package *>(&e) != nullptr) {
329 if (std::holds_alternative<namespace_>(nsit.value())) {
330 const auto &ns_pattern = std::get<namespace_>(nsit.value());
331
332 auto element_full_name_starts_with_namespace =
333 namespace_{e.name_and_ns()}.starts_with(ns_pattern);
334
335 auto element_full_name_equals_pattern =
337
338 auto pattern_starts_with_element_full_name =
340
341 auto result = element_full_name_starts_with_namespace ||
342 element_full_name_equals_pattern;
343
345 result =
346 result || pattern_starts_with_element_full_name;
347
348 return result;
349 }
350
351 return std::get<common::regex>(nsit.value()) %=
352 e.full_name(false);
353 });
354
355 return result;
356 }
357
361 if (std::holds_alternative<namespace_>(nsit.value())) {
362 auto e_ns = namespace_{e.full_name(false)};
363 auto nsit_ns = std::get<namespace_>(nsit.value());
364
366 return e_ns.starts_with(nsit_ns) ||
367 nsit_ns.starts_with(e_ns) || e_ns == nsit_ns;
368
369 return e_ns.starts_with(nsit_ns) || e_ns == nsit_ns;
370 }
371
372 return std::get<common::regex>(nsit.value()) %=
373 e.full_name(false);
374 });
375
376 return result;
377 }
378
381 if (std::holds_alternative<namespace_>(nsit.value())) {
382 return e.get_namespace().starts_with(
383 std::get<namespace_>(nsit.value()));
384 }
385
386 return std::get<common::regex>(nsit.value()) %= e.full_name(false);
387 });
388
389 return result;
390}