Skip to main content

register_rule_set

Macro register_rule_set 

Source
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”));