Module fields

Module fields 

Source
Expand description

§SWIFT MT Message Fields

§Purpose

Comprehensive field definitions for all SWIFT MT message types, providing type-safe parsing, validation, and serialization for individual message fields.

§Field Architecture

Each field module provides:

  • Type-Safe Structures: Strongly-typed field definitions with validation
  • Format Compliance: SWIFT User Handbook format specification adherence
  • Variant Support: Complex enum fields with multiple format options (e.g., Field50: A/F/K)
  • JSON Serialization: Clean JSON output without enum wrapper layers

§Field Categories

  • Reference Fields: Transaction references, message references (Field 20, 21)
  • Amount Fields: Currencies, amounts, exchange rates (Field 32, 33, 36)
  • Party Fields: Customer and institution identification (Field 50-59)
  • Date/Time Fields: Value dates, execution dates (Field 30, 32A)
  • Instruction Fields: Processing instructions and codes (Field 23, 71)
  • Information Fields: Remittance and additional information (Field 70, 72)

§Field Format Support

All fields support SWIFT format specifications:

  • n: Numeric characters (0-9)
  • a: Alphabetic characters (A-Z, a-z)
  • c: Capital letters (A-Z)
  • x: Any character except spaces
  • h: Hexadecimal characters (0-9, A-F)
  • d: Decimal numbers with precision

§Usage Example

use swift_mt_message::fields::{Field20, Field32A, Field50OrderingCustomerAFK, Field59};
use swift_mt_message::SwiftField;

// Parse simple field
let field_20 = Field20::parse("TXN123456")?;

// Parse complex amount field
let field_32a = Field32A::parse("240315USD1000,00")?;

// Parse enum field with variant
let field_50 = Field50OrderingCustomerAFK::parse_with_variant("JOHN DOE\n123 MAIN ST", Some("K"), Some("50"))?;

Re-exports§

pub use field11::*;
pub use field12::*;
pub use field13::*;
pub use field19::*;
pub use field20::*;
pub use field21::*;
pub use field23::*;
pub use field25::*;
pub use field26::*;
pub use field28::*;
pub use field30::*;
pub use field32::*;
pub use field33::*;
pub use field34::*;
pub use field36::*;
pub use field37::*;
pub use field50::*;
pub use field51::*;
pub use field52::*;
pub use field53::*;
pub use field54::*;
pub use field55::*;
pub use field56::*;
pub use field57::*;
pub use field58::*;
pub use field59::*;
pub use field60::*;
pub use field61::*;
pub use field62::*;
pub use field64::*;
pub use field65::*;
pub use field70::*;
pub use field71::*;
pub use field72::*;
pub use field75::*;
pub use field76::*;
pub use field77::*;
pub use field79::*;
pub use field86::*;
pub use field90::*;

Modules§

field11
Field 11: MT Reference
field12
Field 12: Sub Message Type
field13
Field 13: Time/Date Indication
field19
Field 19: Sum of Amounts
field20
field21
field23
field25
field26
field28
field30
field32
Field 32: Value Date, Currency Code, Amount
field33
field34
field36
field37
field50
Field 50: Ordering Customer
field51
field52
field53
field54
field55
field56
field57
field58
field59
field60
field61
field62
field64
field65
field70
field71
field72
field75
field76
field77
field79
field86
field90
Field 90: Number & Sum