Struct chumsky::error::Simple

source ·
pub struct Simple<I: Hash + Eq, S = Range<usize>> { /* private fields */ }
Expand description

A simple default error type that tracks error spans, expected inputs, and the actual input found at an error site.

Please note that it uses a HashSet to remember expected symbols. If you find this to be too slow, you can implement Error for your own error type or use Cheap instead.

Implementations§

source§

impl<I: Hash + Eq, S: Clone> Simple<I, S>

source

pub fn custom<M: ToString>(span: S, msg: M) -> Self

Create an error with a custom error message.

source

pub fn span(&self) -> S

Returns the span that the error occurred at.

source

pub fn expected(&self) -> impl ExactSizeIterator<Item = &Option<I>> + '_

Returns an iterator over possible expected patterns.

source

pub fn found(&self) -> Option<&I>

Returns the input, if any, that was found instead of an expected pattern.

source

pub fn reason(&self) -> &SimpleReason<I, S>

Returns the reason for the error.

source

pub fn label(&self) -> Option<&'static str>

Returns the error’s label, if any.

source

pub fn map<U: Hash + Eq, F: FnMut(I) -> U>(self, f: F) -> Simple<U, S>

Map the error’s inputs using the given function.

This can be used to unify the errors between parsing stages that operate upon two forms of input (for example, the initial lexing stage and the parsing stage in most compilers).

Trait Implementations§

source§

impl<I: Clone + Hash + Eq, S: Clone> Clone for Simple<I, S>

source§

fn clone(&self) -> Simple<I, S>

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl<I: Debug + Hash + Eq, S: Debug> Debug for Simple<I, S>

source§

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

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

impl<I: Display + Hash + Eq, S: Span> Display for Simple<I, S>

source§

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

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

impl<I: Hash + Eq, S: Span + Clone + Debug> Error<I> for Simple<I, S>

§

type Span = S

The type of spans to be used in the error.
§

type Label = &'static str

The label used to describe a syntactic structure currently being parsed. Read more
source§

fn expected_input_found<Iter: IntoIterator<Item = Option<I>>>( span: Self::Span, expected: Iter, found: Option<I> ) -> Self

Create a new error describing a conflict between expected inputs and that which was actually found. Read more
source§

fn unclosed_delimiter( unclosed_span: Self::Span, delimiter: I, span: Self::Span, expected: I, found: Option<I> ) -> Self

Create a new error describing a delimiter that was not correctly closed. Read more
source§

fn with_label(self, label: Self::Label) -> Self

Indicate that the error occurred while parsing a particular syntactic structure. Read more
source§

fn merge(self, other: Self) -> Self

Merge two errors that point to the same input together, combining their information.
source§

impl<I: Debug + Display + Hash + Eq, S: Span + Display + Debug> Error for Simple<I, S>

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl<I: Hash + Eq, S: PartialEq> PartialEq for Simple<I, S>

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<I: Hash + Eq, S: Eq> Eq for Simple<I, S>

Auto Trait Implementations§

§

impl<I, S> RefUnwindSafe for Simple<I, S>

§

impl<I, S> Send for Simple<I, S>
where I: Send, S: Send,

§

impl<I, S> Sync for Simple<I, S>
where I: Sync, S: Sync,

§

impl<I, S> Unpin for Simple<I, S>
where I: Unpin, S: Unpin,

§

impl<I, S> UnwindSafe for Simple<I, S>
where I: UnwindSafe, S: 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> Chain<T> for T

source§

fn len(&self) -> usize

The number of items that this chain link consists of.
source§

fn append_to(self, v: &mut Vec<T>)

Append the elements in this link to the chain.
source§

impl<T> Container<T> for T
where T: Clone,

§

type Iter = Once<T>

An iterator over the items within this container, by value.
source§

fn get_iter(&self) -> <T as Container<T>>::Iter

Iterate over the elements of the container (using internal iteration because GATs are unstable).
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. 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,

§

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§

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

§

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

§

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

impl<T> OrderedContainer<T> for T
where T: Clone,