Skip to main content

EdifactHandler

Trait EdifactHandler 

Source
pub trait EdifactHandler {
    // Provided methods
    fn on_delimiters(
        &mut self,
        _delimiters: &EdifactDelimiters,
        _explicit_una: bool,
    ) { ... }
    fn on_interchange_start(&mut self, _unb: &RawSegment<'_>) -> Control { ... }
    fn on_message_start(&mut self, _unh: &RawSegment<'_>) -> Control { ... }
    fn on_segment(&mut self, _segment: &RawSegment<'_>) -> Control { ... }
    fn on_message_end(&mut self, _unt: &RawSegment<'_>) { ... }
    fn on_interchange_end(&mut self, _unz: &RawSegment<'_>) { ... }
    fn on_error(&mut self, _error: ParseError) -> Control { ... }
}
Expand description

Trait for handling EDIFACT parsing events.

All methods have default no-op implementations, so implementors only need to override the callbacks they care about.

§Event Order

For a typical EDIFACT interchange:

  1. on_delimiters() — always called first
  2. on_interchange_start() — when UNB is encountered
  3. on_message_start() — when UNH is encountered
  4. on_segment() — for EVERY segment (including UNB, UNH, UNT, UNZ)
  5. on_message_end() — when UNT is encountered
  6. on_interchange_end() — when UNZ is encountered

Provided Methods§

Source

fn on_delimiters( &mut self, _delimiters: &EdifactDelimiters, _explicit_una: bool, )

Called when delimiters are determined (from UNA or defaults).

Source

fn on_interchange_start(&mut self, _unb: &RawSegment<'_>) -> Control

Called when an interchange begins (UNB segment).

Source

fn on_message_start(&mut self, _unh: &RawSegment<'_>) -> Control

Called when a message begins (UNH segment).

Source

fn on_segment(&mut self, _segment: &RawSegment<'_>) -> Control

Called for every segment in the interchange.

This is called for ALL segments, including service segments (UNB, UNH, UNT, UNZ). The specific on_* methods are called BEFORE on_segment() for service segments.

Source

fn on_message_end(&mut self, _unt: &RawSegment<'_>)

Called when a message ends (UNT segment).

Source

fn on_interchange_end(&mut self, _unz: &RawSegment<'_>)

Called when an interchange ends (UNZ segment).

Source

fn on_error(&mut self, _error: ParseError) -> Control

Called when a parsing error occurs.

Return Control::Continue to attempt recovery, or Control::Stop to abort parsing.

Implementors§