pub struct ValidationIssue {Show 13 fields
pub severity: Severity,
pub kind: IssueKind,
pub segment_position: Option<SegmentPosition>,
pub field_path: Option<String>,
pub rule: Option<String>,
pub actual_value: Option<String>,
pub expected_value: Option<String>,
pub bo4e_path: Option<String>,
pub instance_index: Option<usize>,
pub field_element_position: Option<u32>,
pub field_component_position: Option<u32>,
pub mig_number: Option<String>,
pub transaction_index: Option<usize>,
}Expand description
A single validation issue found in an EDIFACT message.
Fields§
§severity: SeveritySeverity level of this issue.
kind: IssueKindMachine-readable description of the problem. code() and category()
are derived from it, so they can never disagree with the kind.
segment_position: Option<SegmentPosition>Position in the EDIFACT message where the issue was found.
field_path: Option<String>Field path within the segment (e.g., “SG2/NAD/C082/3039”).
rule: Option<String>The AHB rule that triggered this issue (e.g., “Muss [182] ∧ [152]”).
actual_value: Option<String>The actual value found (if applicable).
expected_value: Option<String>The expected value (if applicable).
bo4e_path: Option<String>BO4E field path (e.g., “stammdaten.Marktlokation.marktlokationsId”). Set when validation is triggered from BO4E input and errors can be traced back to the source BO4E structure.
instance_index: Option<usize>Index of the group instance this issue applies to (0-based) when
the issue originated inside a group repetition. None for issues
that aren’t scoped to a specific instance (e.g., top-level root
fields, unmatched rules, flat-segment checks).
field_element_position: Option<u32>1-based EDIFACT position of the offending data element (or
composite) within the segment. Counts the segment identifier as
position 1, so the first element after the tag is position 2.
Maps to CONTRL UCD 0098.
field_component_position: Option<u32>1-based position of the offending component within its composite
data element. Maps to CONTRL UCD 0104. None when the issue is
at the simple-element level.
mig_number: Option<String>MIG Number of the segment slot the issue concerns (the AHB rule’s),
when known: it names the segment as the message description does
(the APERAK’s Ortsangabe, FTX+Z02).
transaction_index: Option<usize>0-based index of the transaction (UTILMD SG4) the issue lies in, when
the message type has transactions and the issue is in one; None for
the message header and for message types without transactions.
Implementations§
Source§impl ValidationIssue
impl ValidationIssue
Sourcepub fn new(severity: Severity, kind: IssueKind) -> Self
pub fn new(severity: Severity, kind: IssueKind) -> Self
Create a validation issue. Category and code are derived from kind.
Sourcepub fn with_mig_number(self, number: Option<&str>) -> Self
pub fn with_mig_number(self, number: Option<&str>) -> Self
Builder: set the MIG Number of the segment slot (no-op for None).
Sourcepub fn category(&self) -> ValidationCategory
pub fn category(&self) -> ValidationCategory
The issue’s category, derived from its kind.
Sourcepub fn with_field_position(
self,
element_pos: u32,
component_pos: Option<u32>,
) -> Self
pub fn with_field_position( self, element_pos: u32, component_pos: Option<u32>, ) -> Self
Builder: set the 1-based field positions used by CONTRL UCD S011.
element_pos counts the segment identifier as position 1 (so the
first element after the tag is position 2). component_pos is the
1-based position within a composite, or None for simple elements.
Sourcepub fn with_position(self, position: impl Into<SegmentPosition>) -> Self
pub fn with_position(self, position: impl Into<SegmentPosition>) -> Self
Builder: set the segment position.
Sourcepub fn with_field_path(self, path: impl Into<String>) -> Self
pub fn with_field_path(self, path: impl Into<String>) -> Self
Builder: set the field path.
Sourcepub fn with_actual(self, value: impl Into<String>) -> Self
pub fn with_actual(self, value: impl Into<String>) -> Self
Builder: set the actual value.
Sourcepub fn with_expected(self, value: impl Into<String>) -> Self
pub fn with_expected(self, value: impl Into<String>) -> Self
Builder: set the expected value.
Sourcepub fn with_bo4e_path(self, path: impl Into<String>) -> Self
pub fn with_bo4e_path(self, path: impl Into<String>) -> Self
Builder: set the BO4E field path.
Sourcepub fn with_instance_index(self, index: usize) -> Self
pub fn with_instance_index(self, index: usize) -> Self
Builder: set the group instance index (0-based) this issue applies to.
Sourcepub fn is_warning(&self) -> bool
pub fn is_warning(&self) -> bool
Returns true if this is a warning-level issue.