1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//! AHB condition expression parsing, evaluation, and EDIFACT message validation.
//!
//! This crate provides three layers of functionality:
//!
//! 1. **Expression parsing** ([`expr`]): Parses AHB status strings like
//! `"Muss [182] ∧ [6] ∧ [570]"` into a [`ConditionExpr`] AST.
//!
//! 2. **Condition evaluation** ([`eval`]): Evaluates condition expressions
//! using a [`ConditionEvaluator`] trait with three-valued logic
//! (True/False/Unknown) for graceful handling of external conditions.
//!
//! 3. **Message validation** ([`validator`]): Validates EDIFACT messages
//! against AHB rules, producing a [`ValidationReport`] with typed issues.
//!
//! # Quick Start
//!
//! ```ignore
//! 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);
//! ```
// Re-export key types at crate root for convenience
pub use ;
pub use ;
pub use ;
pub use ;
// Re-export AHB workflow types for callers
pub use ;
// Re-export generated evaluators
pub use *;