Skip to main content

ErrorKind

Enum ErrorKind 

Source
#[non_exhaustive]
pub enum ErrorKind {
Show 37 variants CaptureLimitExceeded, ClassEscapeInvalid, ClassRangeInvalid, ClassRangeLiteral, ClassUnclosed, DecimalEmpty, DecimalInvalid, EscapeHexEmpty, EscapeHexInvalid, EscapeHexInvalidDigit, EscapeUnexpectedEof, EscapeUnrecognized, FlagDanglingNegation, FlagDuplicate { original: Span, }, FlagRepeatedNegation { original: Span, }, FlagUnexpectedEof, FlagUnrecognized, GroupNameDuplicate { original: Span, }, GroupNameEmpty, GroupNameInvalid, GroupNameUnexpectedEof, GroupUnclosed, GroupUnopened, NestLimitExceeded(u32), RepetitionCountInvalid, RepetitionCountDecimalEmpty, RepetitionCountUnclosed, RepetitionMissing, SpecialWordBoundaryUnclosed, SpecialWordBoundaryUnrecognized, SpecialWordOrRepetitionUnexpectedEof, UnicodeClassInvalid, UnsupportedBackreference, UnsupportedLookAround, UnsupportedResharpRegex, UnsupportedLazyQuantifier, ComplementGroupExpected,
}
Expand description

The type of an error that occurred while building an AST.

This error type is marked as non_exhaustive. This means that adding a new variant is not considered a breaking change.

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.
§

CaptureLimitExceeded

The capturing group limit was exceeded.

Note that this represents a limit on the total number of capturing groups in a regex and not necessarily the number of nested capturing groups. That is, the nest limit can be low and it is still possible for this error to occur.

§

ClassEscapeInvalid

An invalid escape sequence was found in a character class set.

§

ClassRangeInvalid

An invalid character class range was found. An invalid range is any range where the start is greater than the end.

§

ClassRangeLiteral

An invalid range boundary was found in a character class. Range boundaries must be a single literal codepoint, but this error indicates that something else was found, such as a nested class.

§

ClassUnclosed

An opening [ was found with no corresponding closing ].

§

DecimalEmpty

Note that this error variant is no longer used. Namely, a decimal number can only appear as a repetition quantifier. When the number in a repetition quantifier is empty, then it gets its own specialized error, RepetitionCountDecimalEmpty.

§

DecimalInvalid

An invalid decimal number was given where one was expected.

§

EscapeHexEmpty

A bracketed hex literal was empty.

§

EscapeHexInvalid

A bracketed hex literal did not correspond to a Unicode scalar value.

§

EscapeHexInvalidDigit

An invalid hexadecimal digit was found.

§

EscapeUnexpectedEof

EOF was found before an escape sequence was completed.

§

EscapeUnrecognized

An unrecognized escape sequence.

§

FlagDanglingNegation

A dangling negation was used when setting flags, e.g., i-.

§

FlagDuplicate

A flag was used twice, e.g., i-i.

Fields

§original: Span

The position of the original flag. The error position points to the duplicate flag.

§

FlagRepeatedNegation

The negation operator was used twice, e.g., -i-s.

Fields

§original: Span

The position of the original negation operator. The error position points to the duplicate negation operator.

§

FlagUnexpectedEof

Expected a flag but got EOF, e.g., (?.

§

FlagUnrecognized

Unrecognized flag, e.g., a.

§

GroupNameDuplicate

A duplicate capture name was found.

Fields

§original: Span

The position of the initial occurrence of the capture name. The error position itself points to the duplicate occurrence.

§

GroupNameEmpty

A capture group name is empty, e.g., (?P<>abc).

§

GroupNameInvalid

An invalid character was seen for a capture group name. This includes errors where the first character is a digit (even though subsequent characters are allowed to be digits).

§

GroupNameUnexpectedEof

A closing > could not be found for a capture group name.

§

GroupUnclosed

An unclosed group, e.g., (ab.

The span of this error corresponds to the unclosed parenthesis.

§

GroupUnopened

An unopened group, e.g., ab).

§

NestLimitExceeded(u32)

The nest limit was exceeded. The limit stored here is the limit configured in the parser.

§

RepetitionCountInvalid

The range provided in a counted repetition operator is invalid. The range is invalid if the start is greater than the end.

§

RepetitionCountDecimalEmpty

An opening { was not followed by a valid decimal value. For example, x{} or x{]} would fail.

§

RepetitionCountUnclosed

An opening { was found with no corresponding closing }.

§

RepetitionMissing

A repetition operator was applied to a missing sub-expression. This occurs, for example, in the regex consisting of just a * or even (?i)*. It is, however, possible to create a repetition operating on an empty sub-expression. For example, ()* is still considered valid.

§

SpecialWordBoundaryUnclosed

The special word boundary syntax, \b{something}, was used, but either EOF without } was seen, or an invalid character in the braces was seen.

§

SpecialWordBoundaryUnrecognized

The special word boundary syntax, \b{something}, was used, but something was not recognized as a valid word boundary kind.

§

SpecialWordOrRepetitionUnexpectedEof

The syntax \b{ was observed, but afterwards the end of the pattern was observed without being able to tell whether it was meant to be a bounded repetition on the \b or the beginning of a special word boundary assertion.

§

UnicodeClassInvalid

The Unicode class is not valid. This typically occurs when a \p is followed by something other than a {.

§

UnsupportedBackreference

When octal support is disabled, this error is produced when an octal escape is used. The octal escape is assumed to be an invocation of a backreference, which is the common case.

§

UnsupportedLookAround

When syntax similar to PCRE’s look-around is used, this error is returned. Some example syntaxes that are rejected include, but are not necessarily limited to, (?=re), (?!re), (?<=re) and (?<!re). Note that all of these syntaxes are otherwise invalid; this error is used to improve the user experience.

§

UnsupportedResharpRegex

Unsupported RE# regex construct.

§

UnsupportedLazyQuantifier

Lazy quantifiers (e.g., *?, +?, ??, {n,m}?) are not supported.

§

ComplementGroupExpected

Trait Implementations§

Source§

impl Clone for ErrorKind

Source§

fn clone(&self) -> ErrorKind

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 ErrorKind

Source§

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

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

impl Display for ErrorKind

Source§

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

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

impl Eq for ErrorKind

Source§

impl PartialEq for ErrorKind

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for ErrorKind

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> 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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.