Enum combine::easy::Error

source ·
pub enum Error<T, R> {
    Unexpected(Info<T, R>),
    Expected(Info<T, R>),
    Message(Info<T, R>),
    Other(Box<dyn StdError + Send + Sync>),
}
Available on crate feature std only.
Expand description

Enum used to store information about an error that has occurred during parsing.

Variants§

§

Unexpected(Info<T, R>)

Error indicating an unexpected token has been encountered in the stream

§

Expected(Info<T, R>)

Error indicating that the parser expected something else

§

Message(Info<T, R>)

Generic message

§

Other(Box<dyn StdError + Send + Sync>)

Variant for containing other types of errors

Implementations§

source§

impl<T, R> Error<T, R>

source

pub fn map_token<F, U>(self, f: F) -> Error<U, R>
where F: FnOnce(T) -> U,

source

pub fn map_range<F, S>(self, f: F) -> Error<T, S>
where F: FnOnce(R) -> S,

source§

impl<T, R> Error<T, R>

source

pub fn end_of_input() -> Error<T, R>

Returns the end_of_input error.

source

pub fn fmt_errors(errors: &[Error<T, R>], f: &mut Formatter<'_>) -> Result
where T: Display, R: Display,

Formats a slice of errors in a human readable way.


let input = r"
  ,123
";
let result = spaces().silent().with(char('.').or(char('a')).or(digit()))
    .easy_parse(position::Stream::new(input));
let m = format!("{}", result.unwrap_err());
let expected = r"Parse error at line: 2, column: 3
Unexpected `,`
Expected `.`, `a` or digit
";
assert_eq!(m, expected);

Trait Implementations§

source§

impl<T: Debug, R: Debug> Debug for Error<T, R>

source§

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

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

impl<T: Display, R: Display> Display for Error<T, R>

source§

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

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

impl<T, R, E> From<E> for Error<T, R>
where E: StdError + 'static + Send + Sync,

source§

fn from(e: E) -> Error<T, R>

Converts to this type from the input type.
source§

impl<Item, Range, Position> ParseError<Item, Range, Position> for Error<Item, Range>
where Item: PartialEq, Range: PartialEq, Position: Default,

§

type StreamError = Error<Item, Range>

source§

fn empty(_: Position) -> Self

Constructs an empty error. Read more
source§

fn from_error(_: Position, err: Self::StreamError) -> Self

Creates a ParseError from a single Self::StreamError
source§

fn position(&self) -> Position

source§

fn set_position(&mut self, _position: Position)

Sets the position of this ParseError
source§

fn add(&mut self, err: Self::StreamError)

Adds a StreamError to self. Read more
source§

fn set_expected<F>(self_: &mut Tracked<Self>, info: Self::StreamError, f: F)
where F: FnOnce(&mut Tracked<Self>),

Sets info as the only Expected error of self
source§

fn is_unexpected_end_of_input(&self) -> bool

source§

fn into_other<T>(self) -> T
where T: ParseError<Item, Range, Position>,

Does a best-effort conversion of self into another ParseError
source§

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

Merges two errors. If they exist at the same position the errors of other are added to self (using the semantics of add). If they are not at the same position the error furthest ahead are returned, ignoring the other ParseError.
source§

fn add_expected<E>(&mut self, info: E)
where E: for<'s> ErrorInfo<'s, Item, Range>,

source§

fn add_unexpected<E>(&mut self, info: E)
where E: for<'s> ErrorInfo<'s, Item, Range>,

source§

fn add_message<E>(&mut self, info: E)
where E: for<'s> ErrorInfo<'s, Item, Range>,

source§

fn clear_expected(&mut self)

Removes any expected errors currently in self
source§

impl<T: PartialEq, R: PartialEq> PartialEq for Error<T, R>

source§

fn eq(&self, other: &Error<T, R>) -> 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<Item, Range> StreamError<Item, Range> for Error<Item, Range>
where Item: PartialEq, Range: PartialEq,

source§

fn unexpected_token(token: Item) -> Self

source§

fn unexpected_range(token: Range) -> Self

source§

fn unexpected_format<T>(msg: T) -> Self
where T: Display,

source§

fn unexpected_static_message(msg: &'static str) -> Self

source§

fn expected_token(token: Item) -> Self

source§

fn expected_range(token: Range) -> Self

source§

fn expected_format<T>(msg: T) -> Self
where T: Display,

source§

fn expected_static_message(msg: &'static str) -> Self

source§

fn message_format<T>(msg: T) -> Self
where T: Display,

source§

fn message_static_message(msg: &'static str) -> Self

source§

fn message_token(token: Item) -> Self

source§

fn message_range(token: Range) -> Self

source§

fn is_unexpected_end_of_input(&self) -> bool

source§

fn other<E>(err: E) -> Self
where E: StdError + Send + Sync + 'static,

source§

fn into_other<T>(self) -> T
where T: StreamError<Item, Range>,

Converts self into a different StreamError type. Read more
source§

fn unexpected<E>(info: E) -> Self
where E: for<'s> ErrorInfo<'s, Item, Range>,

source§

fn expected<E>(info: E) -> Self
where E: for<'s> ErrorInfo<'s, Item, Range>,

source§

fn message<E>(info: E) -> Self
where E: for<'s> ErrorInfo<'s, Item, Range>,

source§

fn end_of_input() -> Self

source§

impl<Item, Range> StreamErrorInto<Item, Range> for Error<Item, Range>

source§

fn into_other_error<T, Item2, Range2>(self) -> T
where T: StreamError<Item2, Range2>, Item2: From<Item>, Range2: From<Range>,

Auto Trait Implementations§

§

impl<T, R> Freeze for Error<T, R>
where T: Freeze, R: Freeze,

§

impl<T, R> !RefUnwindSafe for Error<T, R>

§

impl<T, R> Send for Error<T, R>
where T: Send, R: Send,

§

impl<T, R> Sync for Error<T, R>
where T: Sync, R: Sync,

§

impl<T, R> Unpin for Error<T, R>
where T: Unpin, R: Unpin,

§

impl<T, R> !UnwindSafe for Error<T, R>

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> From<!> for T

source§

fn from(t: !) -> T

Converts to this type from the input type.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> 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> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more