666 {
667 if (node["anyof"]) {
668 rhs.anyof = std::make_unique<filter>(node["anyof"].as<filter>());
669 }
670
671 if (node["allof"]) {
672 rhs.allof = std::make_unique<filter>(node["allof"].as<filter>());
673 }
674
675 if (node["namespaces"]) {
676 auto namespace_list =
677 node["namespaces"].as<decltype(rhs.namespaces)>();
678 for (const auto &ns : namespace_list)
679 rhs.namespaces.push_back({ns});
680 }
681
682 if (node["modules"]) {
683 auto module_list = node["modules"].as<decltype(rhs.modules)>();
684 for (const auto &ns : module_list)
685 rhs.modules.push_back({ns});
686 }
687
688 if (node["module_access"])
689 rhs.module_access =
690 node["module_access"].as<decltype(rhs.module_access)>();
691
692 if (node["relationships"])
693 rhs.relationships =
694 node["relationships"].as<decltype(rhs.relationships)>();
695
696 if (node["elements"])
697 rhs.elements = node["elements"].as<decltype(rhs.elements)>();
698
699 if (node["element_types"])
700 rhs.element_types =
701 node["element_types"].as<decltype(rhs.element_types)>();
702
703 if (node["method_types"])
704 rhs.method_types =
705 node["method_types"].as<decltype(rhs.method_types)>();
706
707 if (node["access"])
708 rhs.access = node["access"].as<decltype(rhs.access)>();
709
710 if (node["subclasses"])
711 rhs.subclasses = node["subclasses"].as<decltype(rhs.subclasses)>();
712
713 if (node["parents"])
714 rhs.parents = node["parents"].as<decltype(rhs.parents)>();
715
716 if (node["specializations"])
717 rhs.specializations =
718 node["specializations"].as<decltype(rhs.specializations)>();
719
720 if (node["dependants"])
721 rhs.dependants = node["dependants"].as<decltype(rhs.dependants)>();
722
723 if (node["dependencies"])
724 rhs.dependencies =
725 node["dependencies"].as<decltype(rhs.dependencies)>();
726
727 if (node["context"])
728 rhs.context = node["context"].as<decltype(rhs.context)>();
729
730 if (node["paths"])
731 rhs.paths = node["paths"].as<decltype(rhs.paths)>();
732
733 if (node["callee_types"])
734 rhs.callee_types =
735 node["callee_types"].as<decltype(rhs.callee_types)>();
736
737 return true;
738 }