Enum combine::stream::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>),
}
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<'_>) -> Resultwhere 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(State::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 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) -> Twhere 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(&mut self, info: Info<Item, Range>)

source§

fn add_unexpected(&mut self, info: Info<Item, Range>)

source§

fn add_message(&mut self, info: Info<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_message<T>(msg: T) -> Selfwhere 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_message<T>(msg: T) -> Selfwhere T: Display,

source§

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

source§

fn message_message<T>(msg: T) -> Selfwhere 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 other<E>(err: E) -> Selfwhere E: StdError + Send + Sync + 'static,

source§

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

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

fn unexpected(info: Info<Item, Range>) -> Self

source§

fn expected(info: Info<Item, Range>) -> Self

source§

fn message(info: Info<Item, Range>) -> Self

source§

fn end_of_input() -> Self

Auto Trait Implementations§

§

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

§

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

§

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

§

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

§

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

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<!> 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, 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> ToString for Twhere 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 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.