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 display::Bo4eView;
pub use display::EdifactView;
pub use display::IssueDisplay;
pub use display::IssueNarrator;
pub use display::IssueView;
pub use display::TechnicalNarrator;
pub use error::ParseError;
pub use error::ValidationError;
pub use eval::presence_condition;
pub use eval::presence_conditions;
pub use eval::AbsentTarget;
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::ConditionParser;
pub use validator::build_validated_tree;
pub use validator::validate_unt_segment_count;
pub use validator::AhbGroupNode;
pub use validator::AhbNode;
pub use validator::EdifactValidator;
pub use validator::ErrorCodes;
pub use validator::IssueKind;
pub use validator::SegmentPosition;
pub use validator::Severity;
pub use validator::UnresolvedConditions;
pub use validator::ValidatedTree;
pub use validator::ValidationCategory;
pub use validator::ValidationIssue;
pub use validator::ValidationLevel;
pub use validator::ValidationReport;
pub use evaluator_factory::evaluator_for;
pub use pipeline::validate_edifact_message;
pub use workflow_schema::ahb_workflow_from_pid_schema;
pub use generated::*;

Modules§

display
Turning validation results into something a human or another program reads.
error
Error types for the automapper-validation crate.
eval
Condition evaluation traits and expression evaluator.
evaluator_factory
The condition evaluator for a message variant and format version.
expr
Condition expression AST and parser.
generated
pipeline
Full raw-EDIFACT validation pipeline, shared by the v2 API route (automapper-api’s run_validation) and the edifact-mapper library entry point (Mapper::validate_edifact), so both produce byte-identical findings.
validator
EDIFACT message validator.
workflow_schema
Build an AhbWorkflow from an AHB-enriched PID schema JSON value.

Structs§

AhbCodeRule
An allowed code value within an AHB field rule.
AhbFieldRule
AHB field definition for validation.
AhbWorkflow
AHB workflow definition for a specific Pruefidentifikator.

Enums§

ConditionExpr
A parsed AHB condition expression tree.
StructureDiagnosticKind
Classification of structure-level diagnostic issues.

Traits§

GroupNavigator
Provides group-scoped segment access for condition evaluation.