Skip to main content

Crate automapper_validation

Crate automapper_validation 

Source
Expand description

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

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-exports§

pub use error::ParseError;
pub use error::ValidationError;
pub use eval::CodeListProvider;
pub use eval::CompositeExternalProvider;
pub use eval::ConditionEvaluator;
pub use eval::ConditionExprEvaluator;
pub use eval::ConditionResult;
pub use eval::CountryPostalCodeProvider;
pub use eval::EvaluationContext;
pub use eval::KonfigurationenProvider;
pub use eval::MapExternalProvider;
pub use eval::MarketRole;
pub use eval::MarketRoleProvider;
pub use eval::NoOpGroupNavigator;
pub use eval::Sector;
pub use eval::SectorProvider;
pub use expr::ConditionExpr;
pub use expr::ConditionParser;
pub use validator::EdifactValidator;
pub use validator::ErrorCodes;
pub use validator::Severity;
pub use validator::ValidationCategory;
pub use validator::ValidationIssue;
pub use validator::ValidationLevel;
pub use validator::ValidationReport;
pub use validator::validate::AhbCodeRule;
pub use validator::validate::AhbFieldRule;
pub use validator::validate::AhbWorkflow;
pub use generated::*;

Modules§

error
Error types for the automapper-validation crate.
eval
Condition evaluation traits and expression evaluator.
expr
Condition expression AST and parser.
generated
validator
EDIFACT message validator.

Traits§

GroupNavigator
Provides group-scoped segment access for condition evaluation.