#[non_exhaustive]pub struct ValidatedInterchange {
pub interchange: InterchangeEnvelope,
pub functional_groups: Vec<FunctionalGroupEnvelope>,
pub messages: Vec<MessageEnvelope>,
}Expand description
Fully validated interchange structure returned by validate_envelope.
Provides both hierarchical (group → message) and flat (all messages) access
so that callers who do not care about group boundaries can use
messages directly.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.interchange: InterchangeEnvelopeInterchange-level envelope data (from UNB/UNZ).
functional_groups: Vec<FunctionalGroupEnvelope>Functional groups, when the interchange uses UNG/UNE wrappers.
Empty when messages appear directly under the interchange (the common case for BDEW MaKo and most modern EDIFACT implementations).
messages: Vec<MessageEnvelope>Flat list of all messages in the interchange.
When functional groups are present this contains the same messages as
the nested messages fields inside each FunctionalGroupEnvelope.
Implementations§
Source§impl ValidatedInterchange
impl ValidatedInterchange
Sourcepub fn has_functional_groups(&self) -> bool
pub fn has_functional_groups(&self) -> bool
Returns true if this interchange uses UNG/UNE functional group wrappers.
Sourcepub fn message_count(&self) -> usize
pub fn message_count(&self) -> usize
Total number of UNH/UNT message pairs across all groups.
Equivalent to self.messages.len() but communicates intent clearly.
Sourcepub fn iter_messages(&self) -> impl Iterator<Item = &MessageEnvelope>
pub fn iter_messages(&self) -> impl Iterator<Item = &MessageEnvelope>
Iterate over all messages in the interchange.
Equivalent to self.messages.iter() but communicates intent clearly
and is stable regardless of future internal layout changes.
Sourcepub fn find_message(&self, reference: &str) -> Option<&MessageEnvelope>
pub fn find_message(&self, reference: &str) -> Option<&MessageEnvelope>
Find the first message whose message_ref equals reference.
Useful for locating a specific message in an interchange with multiple
messages after calling validate_envelope.
Returns None if no message with that reference exists.
Sourcepub fn messages_by_type(&self, message_type: &str) -> Vec<&MessageEnvelope>
pub fn messages_by_type(&self, message_type: &str) -> Vec<&MessageEnvelope>
Collect all messages of a given type (e.g. "ORDERS", "INVOIC").
Returns a Vec of references to matching messages in document order.
Returns an empty Vec when the interchange contains no messages of
the requested type.
Prefer iter_messages_by_type in tight loops
to avoid the allocation.
Sourcepub fn iter_messages_by_type<'s, 'q: 's>(
&'s self,
message_type: &'q str,
) -> impl Iterator<Item = &'s MessageEnvelope> + 's
pub fn iter_messages_by_type<'s, 'q: 's>( &'s self, message_type: &'q str, ) -> impl Iterator<Item = &'s MessageEnvelope> + 's
Iterate over all messages of a given type without allocating.
Zero-allocation alternative to messages_by_type.
The bound 'q: 's means the message_type string reference must outlive the
borrow of self. In practice this is always satisfied when passing a string
literal (&'static str) or any string whose lifetime is at least as long as
the ValidatedInterchange reference. For short-lived computed strings, use
messages_by_type which collects eagerly and releases the string reference
immediately.
Trait Implementations§
Source§impl Clone for ValidatedInterchange
impl Clone for ValidatedInterchange
Source§fn clone(&self) -> ValidatedInterchange
fn clone(&self) -> ValidatedInterchange
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ValidatedInterchange
impl Debug for ValidatedInterchange
Source§impl<'de> Deserialize<'de> for ValidatedInterchange
impl<'de> Deserialize<'de> for ValidatedInterchange
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for ValidatedInterchange
impl Display for ValidatedInterchange
impl Eq for ValidatedInterchange
Source§impl Hash for ValidatedInterchange
impl Hash for ValidatedInterchange
Source§impl PartialEq for ValidatedInterchange
impl PartialEq for ValidatedInterchange
Source§impl Serialize for ValidatedInterchange
impl Serialize for ValidatedInterchange
impl StructuralPartialEq for ValidatedInterchange
Auto Trait Implementations§
impl Freeze for ValidatedInterchange
impl RefUnwindSafe for ValidatedInterchange
impl Send for ValidatedInterchange
impl Sync for ValidatedInterchange
impl Unpin for ValidatedInterchange
impl UnsafeUnpin for ValidatedInterchange
impl UnwindSafe for ValidatedInterchange
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more