443{
445 return {};
446
447 if (!e.module().has_value())
448 return {false};
449
450 auto module_toks =
452
453 if (dynamic_cast<const package *>(&e) != nullptr &&
455 module_toks.push_back(e.name());
456 }
457
459 [&e, &module_toks](const auto &modit) {
460 if (std::holds_alternative<std::string>(modit.value())) {
461 const auto &modit_str = std::get<std::string>(modit.value());
462 const auto modit_toks =
463 path::split(modit_str, path_type::kModule);
464
465 return e.module() == modit_str ||
466 util::starts_with(module_toks, modit_toks);
467 }
468
469 return std::get<common::regex>(modit.value()) %= e.module().value();
470 });
471
474 LOG_TRACE(
"Element {} rejected by modules_filter", e.full_name(
false));
475 }
476
477 return result;
478}