SwiftParser

Struct SwiftParser 

Source
pub struct SwiftParser { /* private fields */ }
Expand description

Main parser for SWIFT MT messages

§Purpose

Primary parsing engine that converts raw SWIFT message strings into typed, validated message structures. Handles all aspects of SWIFT message processing including block extraction, header parsing, field parsing, and type-safe message construction.

§Capabilities

  • Multi-Message Support: Parses all 24 supported MT message types
  • Flexible Parsing: Both type-specific and auto-detection parsing modes
  • Robust Error Handling: Comprehensive error reporting for malformed messages
  • Field Validation: Format validation and business rule checking
  • Position Tracking: Maintains field order for sequential processing requirements

§Parsing Process

  1. Block Extraction: Identifies and extracts SWIFT blocks 1-5
  2. Header Validation: Parses and validates basic, application, user headers and trailer
  3. Message Type Detection: Determines message type from application header
  4. Field Processing: Parses block 4 fields with position and variant tracking
  5. Type Construction: Builds strongly-typed message structures
  6. Validation: Applies format and business rule validation

§Thread Safety

SwiftParser is stateless and thread-safe. All methods are static and can be called concurrently from multiple threads.

Implementations§

Source§

impl SwiftParser

Source

pub fn new() -> Self

Create a new parser with default configuration

Source

pub fn with_config(config: ParserConfig) -> Self

Create a new parser with custom configuration

Source

pub fn parse_with_errors<T: SwiftMessageBody>( &self, raw_message: &str, ) -> Result<ParseResult<SwiftMessage<T>>>

Parse a message and return ParseResult with all errors collected

Source

pub fn parse<T: SwiftMessageBody>(raw_message: &str) -> Result<SwiftMessage<T>>

Parse a raw SWIFT message string into a typed message (static method for backward compatibility)

Source

pub fn parse_message<T: SwiftMessageBody>( &self, raw_message: &str, ) -> Result<SwiftMessage<T>>

Parse a raw SWIFT message string into a typed message with configuration support

Source

pub fn parse_auto(raw_message: &str) -> Result<ParsedSwiftMessage>

Parse a raw SWIFT message string with automatic message type detection (static method for backward compatibility)

Source

pub fn parse_message_auto( &self, raw_message: &str, ) -> Result<ParsedSwiftMessage>

Parse a raw SWIFT message string with automatic message type detection and configuration support

Source

pub fn extract_block( raw_message: &str, block_index: u8, ) -> Result<Option<String>>

Extract a specific message block from raw SWIFT message with SWIFT validation

Trait Implementations§

Source§

impl Default for SwiftParser

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Fake for T

Source§

fn fake<U>(&self) -> U
where Self: FakeBase<U>,

Source§

fn fake_with_rng<U, R>(&self, rng: &mut R) -> U
where R: Rng + ?Sized, Self: FakeBase<U>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V