Crate swift_mt_message

Crate swift_mt_message 

Source
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§

SwiftResult
Simplified result type for SWIFT operations

Attribute Macros§

serde_swift_fields
Attribute macro for automatic serde field generation

Derive Macros§

SwiftField
Derive macro for SwiftField trait implementation
SwiftMessage
Derive macro for SwiftMessage trait implementation