dredd-rs 0.2.1

A simple rules engine for Rust, adapted from the Dredd implementation for Android.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use crate::rule::{Rule, RuleContext, RuleResult};

use super::RuleRunner;

/// ChainRuleRunner executes rules in sequence
pub struct ChainRuleRunner;

impl RuleRunner for ChainRuleRunner {
    fn run(&self, context: &mut RuleContext, rules: &mut [Box<dyn Rule>]) -> RuleResult<()> {
        // Chain rules execute sequentially
        for rule in rules {
            rule.fire(context)?;
        }
        Ok(())
    }
}