Expand description
§Swift MT Message Parser - Enhanced Architecture
A comprehensive Rust library for parsing SWIFT MT (Message Type) messages with strong typing, complex field structures, comprehensive validation, and flattened JSON serialization.
§Key Features
- Complex Field Structures: Full enum-based field variants (Field50: A/F/K, Field59: A/Basic)
- Flattened JSON Serialization: Clean JSON output without enum wrapper layers
- Type-safe field parsing with dedicated field structs and automatic validation
- Comprehensive Field Support: All MT103 fields with proper SWIFT compliance
- Bidirectional Serialization: Perfect round-trip JSON serialization/deserialization
- Extensive Validation: BIC validation, field length checks, format compliance
§Supported Field Types
§Complex Enum Fields
- Field50 (Ordering Customer): 50A (Account+BIC), 50F (Party+Address), 50K (Name+Address)
- Field59 (Beneficiary Customer): 59A (Account+BIC), 59 (Basic lines)
§Institution Fields (with account_line_indicator)
- Field52A (Ordering Institution): BIC + optional account + account_line_indicator
- Field53A-57A (Correspondent/Intermediary): All with account_line_indicator support
§Simple Type Fields
- Field32A (Value Date/Currency/Amount): NaiveDate + String + f64
- Field20, 23B, 70, 71A: Proper field name alignment with old version
§JSON Output Structure
The library produces clean, flattened JSON without enum wrapper layers:
{
"50": {
"name_and_address": ["JOHN DOE", "123 MAIN ST"]
},
"59": {
"account": "DE89370400440532013000",
"bic": "DEUTDEFFXXX"
}
}
Instead of nested enum structures like {"50": {"K": {...}}}
.
Re-exports§
pub use errors::ParseError;
pub use errors::Result;
pub use errors::SwiftBusinessError;
pub use errors::SwiftContentError;
pub use errors::SwiftFormatError;
pub use errors::SwiftGeneralError;
pub use errors::SwiftRelationError;
pub use errors::SwiftValidationError;
pub use errors::SwiftValidationResult;
pub use errors::ValidationError;
pub use errors::error_codes;
pub use headers::ApplicationHeader;
pub use headers::BasicHeader;
pub use headers::Trailer;
pub use headers::UserHeader;
pub use parsed_message::ParsedSwiftMessage;
pub use parser::SwiftParser;
pub use parser::extract_base_tag;
pub use swift_error_codes as swift_codes;
pub use swift_message::SwiftMessage;
pub use traits::SwiftField;
pub use traits::SwiftMessageBody;
pub use utils::get_field_tag_for_mt;
pub use utils::get_field_tag_with_variant;
pub use validation_result::ValidationResult;
pub use sample::SampleGenerator;
pub use sample::generate_sample;
pub use sample::generate_sample_with_config;
pub use scenario_config::ScenarioConfig;
pub use messages::*;
Modules§
- errors
- Error Handling for SWIFT MT Message Library
- fields
- SWIFT MT Message Fields
- headers
- SWIFT Message Headers and Trailers
- messages
- parsed_
message - ParsedSwiftMessage enum for automatic message type detection and parsing
- parser
- SWIFT MT Message Parser modules
- sample
- Sample generation functionality for SWIFT MT messages
- scenario_
config - Test scenario configuration module for generating SWIFT MT messages
- swift_
error_ codes - Complete SWIFT Error Code Constants
- swift_
message - Complete SWIFT message with headers and body
- traits
- Core traits for SWIFT field and message types
- utils
- Utility functions for SWIFT message processing
- validation_
result - Validation result types for field and message validation
Type Aliases§
- Swift
Result - Simplified result type for SWIFT operations
Attribute Macros§
- serde_
swift_ fields - Attribute macro for automatic serde field generation
Derive Macros§
- Swift
Field - Derive macro for SwiftField trait implementation
- Swift
Message - Derive macro for SwiftMessage trait implementation