#[non_exhaustive]pub enum CheckError {
DuplicateDefinition {
name: String,
span: Span,
},
IncrementalWithoutBase {
name: String,
shadows_core: bool,
span: Span,
},
UndefinedRule {
name: String,
span: Span,
},
InvalidRepeatRange {
min: u64,
max: u64,
span: Span,
},
InvalidNumericRange {
lo: u64,
hi: u64,
span: Span,
},
LeftRecursion {
cycle: Vec<String>,
},
}Expand description
A structural problem: the grammar cannot be used at all.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
DuplicateDefinition
A rule was defined twice with =.
IncrementalWithoutBase
name =/ … with no prior name = ….
Fields
UndefinedRule
A rule reference names no user rule and no core rule.
InvalidRepeatRange
A repetition whose lower bound exceeds its upper bound (D18).
InvalidNumericRange
A numeric range whose lower endpoint exceeds its upper endpoint (D18).
LeftRecursion
A cycle in the first-graph: the recognizer could not terminate on it.
Global, not per start rule — an unreachable left-recursive rule still fails check.
Left recursion is always a grammar bug for an ABNF recognizer, unlike prose values and
unrepresentable terminals, which are legitimate ABNF this crate does not support
(SCOPE.md 6.4).
Implementations§
Trait Implementations§
Source§impl Clone for CheckError
impl Clone for CheckError
Source§impl Debug for CheckError
impl Debug for CheckError
Source§impl Display for CheckError
impl Display for CheckError
impl Eq for CheckError
Source§impl Error for CheckError
impl Error for CheckError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl PartialEq for CheckError
impl PartialEq for CheckError
impl StructuralPartialEq for CheckError
Auto Trait Implementations§
impl Freeze for CheckError
impl RefUnwindSafe for CheckError
impl Send for CheckError
impl Sync for CheckError
impl Unpin for CheckError
impl UnsafeUnpin for CheckError
impl UnwindSafe for CheckError
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
Mutably borrows from an owned value. Read more