#[non_exhaustive]pub struct InterchangeEnvelope {Show 20 fields
pub syntax_identifier: String,
pub syntax_version: String,
pub sender_id: String,
pub sender_qualifier: String,
pub sender_routing_address: Option<String>,
pub recipient_id: String,
pub recipient_qualifier: String,
pub recipient_routing_address: Option<String>,
pub date: String,
pub time: Option<String>,
pub control_ref: String,
pub recipient_password: Option<String>,
pub recipient_password_qualifier: Option<String>,
pub app_ref: Option<String>,
pub processing_priority: Option<String>,
pub acknowledgement_request: bool,
pub communications_agreement_id: Option<String>,
pub test_indicator: bool,
pub declared_unit_count: u32,
pub actual_unit_count: u32,
}Expand description
Extracted data from the UNB / UNZ interchange envelope.
All standard UNB fields that carry business-relevant information are
exposed. Optional fields that are absent in the source are represented
as empty strings (syntax_version, qualifiers) or None (optional fields).
UNB element positions (ISO 9735-1 §6.1.1, 0-indexed):
[0] S001 syntax identifier + version
[1] S002 sender id + qualifier + routing
[2] S003 recipient id + qualifier + routing
[3] S004 date + time
[4] 0020 interchange control reference
[5] S005 recipient password (DE 0022 comp 0)
[6] 0026 application reference
[7] 0029 processing priority code
[8] 0031 acknowledgement request
[9] 0032 communications agreement ID
[10] 0035 test indicatorFields (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.syntax_identifier: StringSyntax identifier, e.g. "UNOA" or "UNOB" (UNB S001 DE 0001).
syntax_version: StringSyntax version number, e.g. "3" (UNB S001 DE 0002).
Empty string when the UNB omits the version component.
sender_id: StringInterchange sender identification (UNB S002 DE 0004).
sender_qualifier: StringInterchange sender identification code qualifier (UNB S002 DE 0007).
Common values: "14" (EAN/GLN), "ZZZ" (mutually defined).
Empty string when no qualifier is present.
sender_routing_address: Option<String>Interchange sender routing address (UNB S002 DE 0014), if present.
An optional routing address used by some EDI networks to identify the sub-entity (division, application) within the sender organisation.
recipient_id: StringInterchange recipient identification (UNB S003 DE 0010).
recipient_qualifier: StringInterchange recipient identification code qualifier (UNB S003 DE 0007).
Same values as sender_qualifier. Empty string when absent.
recipient_routing_address: Option<String>Interchange recipient routing address (UNB S003 DE 0014), if present.
Analogous to sender_routing_address but for the recipient side.
date: StringInterchange date (UNB S004 DE 0017), e.g. "230401" (YYMMDD format).
time: Option<String>Interchange time (UNB S004 DE 0019), e.g. "0900" (HHMM format), if present.
None when the UNB time component (DE 0019) is absent.
control_ref: StringInterchange control reference (UNB DE 0020).
recipient_password: Option<String>Recipient’s reference/password (UNB S005 DE 0022), if present.
Used in some EDI networks for basic interchange-level authentication.
Empty S005 in the source yields None.
recipient_password_qualifier: Option<String>Recipient’s reference/password qualifier (UNB S005 DE 0025), if present.
Qualifies the type of the recipient_password. Example value: "AA" (unencoded).
None when DE 0025 is absent or empty.
app_ref: Option<String>Application reference (UNB DE 0026, element index 6), if present.
Identifies the division, department, or section of sender or recipient.
processing_priority: Option<String>Processing priority code (UNB DE 0029, element index 7), if present.
Indicates the processing priority requested by the sender. Rarely used in practice; included here for full ISO 9735-1 §6.1.1 compliance.
acknowledgement_request: boolAcknowledgement request flag (UNB DE 0031, element index 8).
true when DE 0031 is "1", indicating that the sender requests a
CONTRL functional acknowledgement from the recipient.
communications_agreement_id: Option<String>Communications agreement identifier (UNB DE 0032, element index 9), if present.
Identifies the agreement controlling the interchange, e.g. "EANCOM".
test_indicator: boolTest indicator flag (UNB DE 0035, element index 10).
true when DE 0035 is "1". Test interchanges must not be processed
as production data — check is_test() before dispatching
messages to business logic, billing, or downstream integrations.
declared_unit_count: u32Interchange unit count declared in UNZ DE 0036.
- When no functional groups are present: count of messages (
UNH/UNTpairs). - When functional groups are present: count of groups (
UNG/UNEpairs).
Use ValidatedInterchange::messages for a flat count of all messages
regardless of group structure.
actual_unit_count: u32Actual unit count observed (groups if groups present; messages otherwise).
Implementations§
Source§impl InterchangeEnvelope
impl InterchangeEnvelope
Sourcepub fn is_test(&self) -> bool
pub fn is_test(&self) -> bool
Returns true when the test indicator (UNB DE 0035) is set to "1".
Production systems must check this flag before dispatching any message to business logic, billing, or downstream integrations.
§Example
// UNB element [10] is the test indicator; "1" means test.
// UNB+UNOA:3+S+R+200101:0900+1++++++1' ← last element = "1" → is_test() == true
let input = b"UNB+UNOA:3+S+R+200101:0900+CTRL++++++1'\
UNH+1+ORDERS:D:96A:UN'\
BGM+220+PO-001+9'\
UNT+3+1'\
UNZ+1+CTRL'";
let segs: Vec<_> = edifact_rs::from_bytes(input)
.collect::<Result<Vec<_>, _>>()
.unwrap();
let result = edifact_rs::validate_envelope(&segs).unwrap();
assert!(result.interchange.is_test());Sourcepub fn ack_requested(&self) -> bool
pub fn ack_requested(&self) -> bool
Returns true when the acknowledgement request flag (UNB DE 0031) is set.
When true, the sender expects a CONTRL acknowledgement from the recipient.
Trait Implementations§
Source§impl Clone for InterchangeEnvelope
impl Clone for InterchangeEnvelope
Source§fn clone(&self) -> InterchangeEnvelope
fn clone(&self) -> InterchangeEnvelope
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 InterchangeEnvelope
impl Debug for InterchangeEnvelope
Source§impl<'de> Deserialize<'de> for InterchangeEnvelope
impl<'de> Deserialize<'de> for InterchangeEnvelope
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 InterchangeEnvelope
impl Display for InterchangeEnvelope
impl Eq for InterchangeEnvelope
Source§impl Hash for InterchangeEnvelope
impl Hash for InterchangeEnvelope
Source§impl PartialEq for InterchangeEnvelope
impl PartialEq for InterchangeEnvelope
Source§fn eq(&self, other: &InterchangeEnvelope) -> bool
fn eq(&self, other: &InterchangeEnvelope) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for InterchangeEnvelope
impl Serialize for InterchangeEnvelope
impl StructuralPartialEq for InterchangeEnvelope
Auto Trait Implementations§
impl Freeze for InterchangeEnvelope
impl RefUnwindSafe for InterchangeEnvelope
impl Send for InterchangeEnvelope
impl Sync for InterchangeEnvelope
impl Unpin for InterchangeEnvelope
impl UnsafeUnpin for InterchangeEnvelope
impl UnwindSafe for InterchangeEnvelope
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