pub struct ValidationIssue {
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>,
}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.
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 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.