use crate::rule::{Rule, RuleContext, RuleResult};
use super::RuleRunner;
pub struct BestFirstRuleRunner;
impl RuleRunner for BestFirstRuleRunner {
fn run(&self, context: &mut RuleContext, rules: &mut [Box<dyn Rule>]) -> RuleResult<()> {
for rule in rules {
if rule.evaluate(context)? {
rule.fire(context)?;
break; }
}
Ok(())
}
}