AHB condition expression parsing, evaluation, and EDIFACT message validation.
This crate provides three layers of functionality:
-
Expression parsing ([
expr]): Parses AHB status strings like"Muss [182] ∧ [6] ∧ [570]"into a [ConditionExpr] AST. -
Condition evaluation ([
eval]): Evaluates condition expressions using a [ConditionEvaluator] trait with three-valued logic (True/False/Unknown) for graceful handling of external conditions. -
Message validation ([
validator]): Validates EDIFACT messages against AHB rules, producing a [ValidationReport] with typed issues.
Quick Start
use automapper_validation::expr::{ConditionParser, ConditionExpr};
use automapper_validation::eval::{ConditionExprEvaluator, ConditionResult};
use automapper_validation::validator::{EdifactValidator, ValidationLevel};
// Parse a condition expression
let expr = ConditionParser::parse("Muss [182] ∧ [152]").unwrap();
// Validate pre-parsed segments against AHB workflow
let validator = EdifactValidator::new(my_evaluator);
let report = validator.validate(&segments, &workflow, &external, ValidationLevel::Full);