Skip to main content

mig_bo4e/
lib.rs

1//! Declarative TOML-based MIG-tree <-> BO4E mapping engine.
2//!
3//! # Architecture
4//!
5//! - **TOML mapping files** define simple 1:1 field mappings
6//! - **Complex handlers** are Rust functions for non-trivial logic
7//! - **MappingEngine** loads all definitions and provides bidirectional conversion
8//!
9//! # Usage
10//! ```ignore
11//! let engine = MappingEngine::load("mappings/FV2504/UTILMD_Strom/pid_55001")?;
12//! let def = engine.definition_for_entity("Marktlokation").unwrap();
13//! let bo4e = engine.map_forward(&tree, def, 0);
14//! let instance = engine.map_reverse(&bo4e, def);
15//! ```
16
17pub mod code_lookup;
18pub mod definition;
19pub mod engine;
20pub mod error;
21pub mod error_mapping;
22pub mod handlers;
23pub mod model;
24pub mod path_resolver;
25pub mod pid_requirements;
26pub mod pid_schema_index;
27pub mod pid_validation;
28pub mod segment_structure;
29
30pub use engine::DataBundle;
31pub use engine::MappingEngine;
32pub use engine::VariantCache;
33pub use error::MappingError;
34pub use error_mapping::Bo4eFieldIndex;
35pub use handlers::HandlerRegistry;
36pub use model::{
37    DynamicInterchange, DynamicNachricht, Interchange, Interchangedaten, MappedMessage,
38    MappedTransaktion, Nachricht, Nachrichtendaten,
39};
40pub use path_resolver::PathResolver;
41pub use pid_requirements::{load_definitions_for_pid, EntityScope, PidRequirements};
42pub use pid_schema_index::PidSchemaIndex;
43pub use pid_validation::{PidValidationError, ValidationReport};