swift_mt_message/
lib.rs

1//! # Swift MT Message Parser
2//!
3//! A Rust library for parsing SWIFT MT (Message Type) messages and extracting their fields.
4//! This library focuses purely on parsing and field extraction, not message building or transformation.
5//!
6//! ## Supported Message Types
7//!
8//! - MT102: Multiple Customer Credit Transfer
9//! - MT103: Single Customer Credit Transfer
10//! - MT192: Request for Cancellation
11//! - MT195: Queries
12//! - MT196: Answers
13//! - MT197: Copy of a Message
14//! - MT199: Free Format Message
15//! - MT202: General Financial Institution Transfer
16//! - MT940: Customer Statement Message
17//! - MT941: Balance Report Message
18//! - MT942: Interim Transaction Report
19//!
20//! ## Example Usage
21//!
22//! ```rust
23//! use swift_mt_message::{parse_message, MTMessage};
24//!
25//! # fn main() -> Result<(), Box<dyn std::error::Error>> {
26//! let message_text = "{1:F01BANKDEFFAXXX0123456789}{2:I103BANKDEFFAXXXU3003}{4:\n:20:FT21234567890\n:23B:CRED\n:32A:210315EUR1234567,89\n:50K:JOHN DOE\n:59:JANE SMITH\n-}";
27//! let message = parse_message(message_text)?;
28//!
29//! if let MTMessage::MT103(mt103) = message {
30//!     println!("Sender Reference: {}", mt103.sender_reference()?);
31//!     println!("Amount: {:?}", mt103.amount()?);
32//!     println!("Currency: {}", mt103.currency()?);
33//! }
34//! # Ok(())
35//! # }
36//! ```
37
38pub mod common;
39pub mod error;
40pub mod messages;
41pub mod parser;
42pub mod validation;
43
44// Re-export main types for convenience
45pub use error::{MTError, Result};
46pub use messages::MTMessage;
47pub use parser::parse_message;
48pub use validation::{validate_message, ValidationLevel, ValidationResult};
49
50// Re-export common types that users might need
51pub use common::{Field, MessageBlock, Tag};