Skip to main content

IssueKind

Enum IssueKind 

Source
pub enum IssueKind {
    MissingRequiredField {
        field_name: String,
    },
    FieldConditionNotSatisfied {
        field_name: String,
    },
    ConditionUnknown {
        field_name: String,
        unresolved: UnresolvedConditions,
    },
    PackageCardinality {
        package_id: String,
        present: usize,
        min: usize,
        max: usize,
        codes: Vec<String>,
    },
    CodeNotAllowedForPid {
        value: String,
        allowed: Vec<String>,
    },
    UntSegmentCountMismatch {
        declared: usize,
        actual: usize,
    },
    UntCountNotVerifiable {
        unh_count: usize,
    },
    StructureDiagnostic {
        kind: StructureDiagnosticKind,
        segment_id: String,
        position: usize,
        detail: String,
    },
}
Expand description

What kind of problem a ValidationIssue reports.

One variant per problem the validator actually emits. ErrorCodes lists 22 code strings, but only these are ever constructed; adding a new check means adding a variant, which the compiler then forces every narrator to handle.

Variants§

§

MissingRequiredField

AHB001 — a field the AHB marks mandatory for this PID is absent.

Fields

§field_name: String
§

FieldConditionNotSatisfied

AHB003 — the field is present but its AHB condition is not satisfied.

Fields

§field_name: String
§

ConditionUnknown

AHB005 — the condition expression could not be fully evaluated.

Fields

§field_name: String
§

PackageCardinality

AHB006 — number of codes present in a package is outside min..max.

Fields

§package_id: String
§present: usize
§min: usize
§max: usize
§codes: Vec<String>
§

CodeNotAllowedForPid

COD002 — the value is a valid code but not allowed for this PID.

Fields

§value: String
§allowed: Vec<String>
§

UntSegmentCountMismatch

STR007 — UNT’s declared segment count disagrees with the actual count.

Fields

§declared: usize
§actual: usize
§

UntCountNotVerifiable

STR007 — the input holds several messages, so the count is not checkable.

Fields

§unh_count: usize
§

StructureDiagnostic

STR003 / STR008 — a structure diagnostic raised during assembly.

detail carries the diagnostic’s own message verbatim: some diagnostics (e.g. mig_assembly::Assembler::assemble_with_diagnostics’s "Assembly failed: {e}" case) say something not derivable from (kind, segment_id, position) alone.

Fields

§segment_id: String
§position: usize
§detail: String

Implementations§

Source§

impl IssueKind

Source

pub fn code(&self) -> &'static str

The stable machine identifier, unchanged from the former code field.

Source

pub fn category(&self) -> ValidationCategory

The issue’s category. Derived, so it can never disagree with the kind.

Trait Implementations§

Source§

impl Clone for IssueKind

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for IssueKind

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for IssueKind

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for IssueKind

Source§

impl PartialEq for IssueKind

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for IssueKind

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for IssueKind

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.