Skip to main content

Crate mig_bo4e

Crate mig_bo4e 

Source
Expand description

Declarative TOML-based MIG-tree <-> BO4E mapping engine.

§Architecture

  • TOML mapping files define simple 1:1 field mappings
  • Complex handlers are Rust functions for non-trivial logic
  • MappingEngine loads all definitions and provides bidirectional conversion

§Usage

let engine = MappingEngine::load("mappings/FV2504/UTILMD_Strom/pid_55001")?;
let def = engine.definition_for_entity("Marktlokation").unwrap();
let bo4e = engine.map_forward(&tree, def, 0);
let instance = engine.map_reverse(&bo4e, def);

Re-exports§

pub use engine::DataBundle;
pub use engine::MappingEngine;
pub use engine::VariantCache;
pub use error::MappingError;
pub use error_mapping::Bo4eFieldIndex;
pub use handlers::HandlerRegistry;
pub use model::MappedMessage;
pub use model::MappedTransaktion;
pub use path_resolver::PathResolver;
pub use pid_requirements::load_definitions_for_pid;
pub use pid_requirements::PidRequirements;
pub use pid_schema_index::PidSchemaIndex;
pub use pid_validation::PidValidationError;
pub use pid_validation::ValidationReport;

Modules§

code_lookup
Code enrichment lookup — maps EDIFACT companion field codes to human-readable meanings.
definition
TOML mapping definition types.
engine
Mapping engine — loads TOML definitions and provides bidirectional conversion.
error
error_mapping
Maps EDIFACT validation paths to BO4E field paths.
handlers
Complex mapping handler registry.
model
Output model types for the MIG-driven mapping pipeline.
path_resolver
Resolves EDIFACT ID paths to numeric element indices (and vice versa).
pid_requirements
PID field requirements — built from PID schema JSON + TOML mappings.
pid_schema_index
Lightweight PID schema index for checking which groups exist in a PID.
pid_validation
PID validation errors — typed, LLM-consumable error reports.
segment_structure
MIG-aware segment structure lookup.

Structs§

Interchange
A complete EDIFACT interchange. M = message stammdaten, T = transaction stammdaten.
Interchangedaten
EDIFACT interchange envelope metadata (UNB/UNZ).
Nachricht
A single EDIFACT message within an interchange.
Nachrichtendaten
EDIFACT message metadata (UNH/UNT).

Type Aliases§

DynamicInterchange
Dynamic variant for untyped usage.
DynamicNachricht
Dynamic variant for untyped message usage.