#[non_exhaustive]pub enum SyntaxError {
Show 29 variants
SyntaxVersionNotSupported,
NotActualRecipient,
InvalidValue,
Missing,
ValueNotSupportedHere,
NotSupportedHere,
TooManyConstituents,
NoAgreement,
Unspecified,
InvalidAsServiceCharacter,
InvalidCharacters,
InvalidServiceCharacters,
UnknownSender,
TooOld,
TestIndicatorNotSupported,
DuplicateDetected,
ReferencesDoNotMatch,
ControlCountMismatch,
GroupsAndMessagesMixed,
LowerLevelEmpty,
InvalidOccurrenceOutsideMessage,
TooManyRepetitions,
TooManyGroupRepetitions,
InvalidCharacterType,
DataElementTooLong,
DataElementTooShort,
TrailingSeparator,
CharacterSetNotSupported,
EnvelopeFunctionalityNotSupported,
}Expand description
CONTRL syntax error code — DE 0085, the nature of one fault.
The variants are exactly the code set of ISO 9735-4 Annex A, and
permitted_at reproduces that annex’s table of which
code may be used at which reporting level. Emitting a code at a level the
annex forbids produces a CONTRL the partner’s translator will reject, so
Contrl checks it rather than trusting the caller.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
SyntaxVersionNotSupported
2 — syntax version or level not supported.
NotActualRecipient
7 — interchange recipient not actual recipient.
InvalidValue
12 — invalid value.
Missing
13 — missing.
ValueNotSupportedHere
14 — value not supported in this position.
NotSupportedHere
15 — not supported in this position.
TooManyConstituents
16 — too many constituents.
NoAgreement
17 — no agreement.
Unspecified
18 — unspecified error.
InvalidAsServiceCharacter
20 — character invalid as service character.
InvalidCharacters
21 — invalid character(s).
InvalidServiceCharacters
22 — invalid service character(s).
UnknownSender
23 — unknown interchange sender.
TooOld
24 — too old.
TestIndicatorNotSupported
25 — test indicator not supported.
DuplicateDetected
26 — duplicate detected.
ReferencesDoNotMatch
28 — references do not match.
ControlCountMismatch
29 — control or octet count does not match number of instances received.
GroupsAndMessagesMixed
30 — groups and messages/packages mixed.
LowerLevelEmpty
32 — lower level empty.
InvalidOccurrenceOutsideMessage
33 — invalid occurrence outside message, package or group.
TooManyRepetitions
35 — too many repetitions.
TooManyGroupRepetitions
36 — too many segment group repetitions.
InvalidCharacterType
37 — invalid type of character(s).
DataElementTooLong
39 — data element too long.
DataElementTooShort
40 — data element too short.
TrailingSeparator
45 — trailing separator.
CharacterSetNotSupported
46 — character set not supported.
EnvelopeFunctionalityNotSupported
47 — envelope functionality not supported.
Implementations§
Source§impl SyntaxError
impl SyntaxError
Sourcepub const fn description(self) -> &'static str
pub const fn description(self) -> &'static str
The Annex A code name.
Sourcepub const fn permitted_at(self, level: ReportingLevel) -> bool
pub const fn permitted_at(self, level: ReportingLevel) -> bool
Whether ISO 9735-4 Annex A allows this code at level.
§Example
use edifact_rs::contrl::{ReportingLevel, SyntaxError};
// "Too many segment group repetitions" is a segment-level finding only.
assert!(SyntaxError::TooManyGroupRepetitions.permitted_at(ReportingLevel::Segment));
assert!(!SyntaxError::TooManyGroupRepetitions.permitted_at(ReportingLevel::Interchange));
// "Unknown interchange sender" can only be said about the interchange.
assert!(SyntaxError::UnknownSender.permitted_at(ReportingLevel::Interchange));
assert!(!SyntaxError::UnknownSender.permitted_at(ReportingLevel::Message));Sourcepub fn for_error(error: &EdifactError) -> Self
pub fn for_error(error: &EdifactError) -> Self
The CONTRL code that best names an EdifactError.
ISO 9735-4 §5.3.3 asks for the most precise code available and warns
against reaching for a general one when a specific one fits, so this maps
each variant to the narrowest Annex A code that is true of it, falling
back to 18 (unspecified) only where the annex genuinely offers nothing
better.
§Example
use edifact_rs::contrl::SyntaxError;
use edifact_rs::EdifactError;
let err = EdifactError::MessageCountMismatch { expected: 2, actual: 1 };
assert_eq!(SyntaxError::for_error(&err), SyntaxError::ControlCountMismatch);
assert_eq!(SyntaxError::for_error(&err).code(), "29");Sourcepub fn for_issue(issue: &ValidationIssue) -> Self
pub fn for_issue(issue: &ValidationIssue) -> Self
The best CONTRL code for a ValidationIssue, via its stable code.
Works for issues raised by any validator, including third-party ones,
because it reads ValidationIssue::error_code rather than needing the
original EdifactError. An issue with no stable code — a profile rule
finding, typically — is 18 (unspecified), which is what the annex
provides for a fault it does not name.
Trait Implementations§
Source§impl Clone for SyntaxError
impl Clone for SyntaxError
Source§fn clone(&self) -> SyntaxError
fn clone(&self) -> SyntaxError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for SyntaxError
Source§impl Debug for SyntaxError
impl Debug for SyntaxError
Source§impl Display for SyntaxError
impl Display for SyntaxError
impl Eq for SyntaxError
Source§impl Hash for SyntaxError
impl Hash for SyntaxError
Source§impl PartialEq for SyntaxError
impl PartialEq for SyntaxError
impl StructuralPartialEq for SyntaxError
Auto Trait Implementations§
impl Freeze for SyntaxError
impl RefUnwindSafe for SyntaxError
impl Send for SyntaxError
impl Sync for SyntaxError
impl Unpin for SyntaxError
impl UnsafeUnpin for SyntaxError
impl UnwindSafe for SyntaxError
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,
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