register_rule_set!() { /* proc-macro */ }Expand description
This procedural macro registers a rule set with the global registry. It may be used in any downstream crate.
For more information on linker magic, see the linkme crate.
This macro uses the following syntax:
register_rule_set!(<RuleSet name>, (<DependencyRuleSet1>, <DependencyRuleSet2>, ...), <SolverFamily>);§Example
Register a rule set with no dependencies:
use conjure_cp_core::rule_engine::register_rule_set;
register_rule_set!("MyRuleSet");Register a rule set with dependencies:
use conjure_cp_core::rule_engine::register_rule_set;
register_rule_set!("MyRuleSet", ("DependencyRuleSet", "AnotherRuleSet"));Register a rule set for a specific solver family or families:
use conjure_cp_core::rule_engine::register_rule_set;
use conjure_cp_core::solver::SolverFamily;
register_rule_set!("MyRuleSet", (), |f: &SolverFamily| matches!(f, SolverFamily::Minion));
register_rule_set!("AnotherRuleSet", (), |f: &SolverFamily| matches!(f, SolverFamily::Minion | SolverFamily::Sat));- Register a rule set with the given name, dependencies, and metadata.
§Example
-
- use conjure_cp_rule_macros::register_rule_set;
- register_rule_set!(“MyRuleSet”, (“DependencyRuleSet”, “AnotherRuleSet”));
-