pub enum Error {
    IoError {
        error: Error,
        context: String,
    },
    ParseError {
        msg: String,
        span: Span,
    },
    TypeError {
        msg: String,
        span: Span,
    },
    UnreachableError {
        msg: String,
        span: Span,
    },
    OverlapError {
        msg: String,
        rules: Vec<Span>,
    },
    ShadowedError {
        shadowed: Vec<Span>,
        mask: Span,
    },
}
Expand description

Errors produced by ISLE.

Variants§

§

IoError

Fields

§error: Error

The underlying I/O error.

§context: String

The context explaining what caused the I/O error.

An I/O error.

§

ParseError

Fields

§msg: String

The error message.

§span: Span

The location of the parse error.

The input ISLE source has a parse error.

§

TypeError

Fields

§msg: String

The error message.

§span: Span

The location of the type error.

The input ISLE source has a type error.

§

UnreachableError

Fields

§msg: String

The error message.

§span: Span

The location of the unreachable rule.

The rule can never match any input.

§

OverlapError

Fields

§msg: String

The error message.

§rules: Vec<Span>

The locations of all the rules that overlap. When there are more than two rules present, the first rule is the one with the most overlaps (likely a fall-through wildcard case).

The rules mentioned overlap in the input they accept.

§

ShadowedError

Fields

§shadowed: Vec<Span>

The locations of the unmatchable rules.

§mask: Span

The location of the rule that shadows them.

The rules can never match because another rule will always match first.

Trait Implementations§

source§

impl Debug for Error

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl !UnwindSafe for Error

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. 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 Twhere 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, U> TryFrom<U> for Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.