use crate::rule::{Rule, RuleContext, RuleResult};
use crate::runner::{
best_first_rule_runner::BestFirstRuleRunner, chain_rule_runner::ChainRuleRunner, RuleRunner,
};
pub struct Engine;
impl Engine {
pub fn best_first_runner() -> BestFirstRuleRunner {
BestFirstRuleRunner
}
pub fn chain_runner() -> ChainRuleRunner {
ChainRuleRunner
}
pub fn execute_best_first(
context: &mut RuleContext,
rules: &mut [Box<dyn Rule>],
) -> RuleResult<()> {
Self::best_first_runner().run(context, rules)
}
pub fn execute_chain(context: &mut RuleContext, rules: &mut [Box<dyn Rule>]) -> RuleResult<()> {
Self::chain_runner().run(context, rules)
}
}