Enum ParseError

Source
pub enum ParseError<Loc = ByteSpan>
where Loc: Span,
{ UnexpectedEof, List(Box<ParseError>, Loc), Sexp(Box<ParseError>, Loc), Char(Box<ParseError>, Loc), String(Box<ParseError>, Loc), Symbol(Box<ParseError>, Loc), Number(Box<ParseError>, Loc), Unexpected(char, Loc::Begin), }
Expand description

Indicates how parsing failed.

Most ParseError variants contain a Box<ParseError> that represents the cause of that error. Using this, ParseError variants can be chained to produce a more complete picture of what exactly went wrong during parsing.

Variants§

§

UnexpectedEof

Parsing reached the end of input where not expecting to, usually this will be contained inside another ParseError like String(box UnexpectedEof, ...) which indicates that the closing quote was never found.

§

List(Box<ParseError>, Loc)

Some problem occurred while parsing a list, along with the cause of that error.

§

Sexp(Box<ParseError>, Loc)

Some problem occurred while parsing an s-expression. This will only be generated if EOF is reached unexpectedly at the beginning of parse_expression, so it should probably be removed.

§

Char(Box<ParseError>, Loc)

Some problem occurred while parsing a character literal, along with the cause of the error.

§

String(Box<ParseError>, Loc)

Some problem occurred while parsing a string literal, along with the cause of the error.

§

Symbol(Box<ParseError>, Loc)

Some problem occurred while parsing a symbol, along with the cause of the error.

§

Number(Box<ParseError>, Loc)

Some problem occurred while parsing a number literal, along with the cause of the error.

§

Unexpected(char, Loc::Begin)

An unexpected character was found. This will usually be the root cause in some chain of ParseErrors.

Trait Implementations§

Source§

impl<Loc> Clone for ParseError<Loc>
where Loc: Span + Clone, Loc::Begin: Clone,

Source§

fn clone(&self) -> ParseError<Loc>

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<Loc> Debug for ParseError<Loc>
where Loc: Span + Debug, Loc::Begin: Debug,

Source§

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

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

impl<Loc> PartialEq for ParseError<Loc>
where Loc: Span + PartialEq, Loc::Begin: PartialEq,

Source§

fn eq(&self, other: &ParseError<Loc>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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<Loc> Eq for ParseError<Loc>
where Loc: Span + Eq, Loc::Begin: Eq,

Source§

impl<Loc> StructuralPartialEq for ParseError<Loc>
where Loc: Span,

Auto Trait Implementations§

§

impl<Loc> Freeze for ParseError<Loc>
where Loc: Freeze, <Loc as Span>::Begin: Freeze,

§

impl<Loc> RefUnwindSafe for ParseError<Loc>
where Loc: RefUnwindSafe, <Loc as Span>::Begin: RefUnwindSafe,

§

impl<Loc> Send for ParseError<Loc>
where Loc: Send, <Loc as Span>::Begin: Send,

§

impl<Loc> Sync for ParseError<Loc>
where Loc: Sync, <Loc as Span>::Begin: Sync,

§

impl<Loc> Unpin for ParseError<Loc>
where Loc: Unpin, <Loc as Span>::Begin: Unpin,

§

impl<Loc> UnwindSafe for ParseError<Loc>
where Loc: UnwindSafe, <Loc as Span>::Begin: UnwindSafe,

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