lemma-engine 0.8.19

A language that means business.
Documentation
use lemma::DateTimeValue;
use lemma::Engine;
use std::collections::HashMap;

pub fn eval_rule_bool(
    engine: &Engine,
    spec_name: &str,
    rule: &str,
    effective: &DateTimeValue,
    data: HashMap<String, String>,
) -> bool {
    let response = engine
        .run(
            None,
            spec_name,
            Some(effective),
            data,
            false,
            Some(&[rule.to_string()]),
        )
        .expect("run");
    let rule_result = response.get(rule).unwrap_or_else(|_| panic!("rule {rule}"));
    if rule_result.vetoed {
        panic!(
            "rule {rule} vetoed: {}",
            rule_result.veto_reason.as_deref().unwrap_or("Vetoed")
        );
    }
    rule_result.boolean.expect("boolean rule result")
}