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
sourceimpl<T, R> Error<T, R>
impl<T, R> Error<T, R>
sourcepub fn end_of_input() -> Error<T, R>
pub fn end_of_input() -> Error<T, R>
Returns the end_of_input
error.
sourcepub fn fmt_errors(errors: &[Error<T, R>], f: &mut Formatter<'_>) -> Result where
T: Display,
R: Display,
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
sourceimpl<Item, Range, Position> ParseError<Item, Range, Position> for Error<Item, Range> where
Item: PartialEq,
Range: PartialEq,
Position: Default,
impl<Item, Range, Position> ParseError<Item, Range, Position> for Error<Item, Range> where
Item: PartialEq,
Range: PartialEq,
Position: Default,
type StreamError = Error<Item, Range>
sourcefn from_error(_: Position, err: Self::StreamError) -> Self
fn from_error(_: Position, err: Self::StreamError) -> Self
Creates a ParseError
from a single Self::StreamError
fn position(&self) -> Position
sourcefn set_position(&mut self, _position: Position)
fn set_position(&mut self, _position: Position)
Sets the position of this ParseError
sourcefn add(&mut self, err: Self::StreamError)
fn add(&mut self, err: Self::StreamError)
Adds a StreamError
to self
. Read more
sourcefn set_expected<F>(self_: &mut Tracked<Self>, info: Self::StreamError, f: F) where
F: FnOnce(&mut Tracked<Self>),
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
fn is_unexpected_end_of_input(&self) -> bool
sourcefn into_other<T>(self) -> T where
T: ParseError<Item, Range, Position>,
fn into_other<T>(self) -> T where
T: ParseError<Item, Range, Position>,
Does a best-effort conversion of self
into another ParseError
sourcefn merge(self, other: Self) -> Self
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
. Read more
fn add_expected<E>(&mut self, info: E) where
E: for<'s> ErrorInfo<'s, Item, Range>,
fn add_unexpected<E>(&mut self, info: E) where
E: for<'s> ErrorInfo<'s, Item, Range>,
fn add_message<E>(&mut self, info: E) where
E: for<'s> ErrorInfo<'s, Item, Range>,
sourcefn clear_expected(&mut self)
fn clear_expected(&mut self)
Removes any expected errors currently in self
sourceimpl<Item, Range> StreamError<Item, Range> for Error<Item, Range> where
Item: PartialEq,
Range: PartialEq,
impl<Item, Range> StreamError<Item, Range> for Error<Item, Range> where
Item: PartialEq,
Range: PartialEq,
fn unexpected_token(token: Item) -> Self
fn unexpected_range(token: Range) -> Self
fn unexpected_format<T>(msg: T) -> Self where
T: Display,
fn unexpected_static_message(msg: &'static str) -> Self
fn expected_token(token: Item) -> Self
fn expected_range(token: Range) -> Self
fn expected_format<T>(msg: T) -> Self where
T: Display,
fn expected_static_message(msg: &'static str) -> Self
fn message_format<T>(msg: T) -> Self where
T: Display,
fn message_static_message(msg: &'static str) -> Self
fn message_token(token: Item) -> Self
fn message_range(token: Range) -> Self
fn is_unexpected_end_of_input(&self) -> bool
fn other<E>(err: E) -> Self where
E: StdError + Send + Sync + 'static,
sourcefn into_other<T>(self) -> T where
T: StreamError<Item, Range>,
fn into_other<T>(self) -> T where
T: StreamError<Item, Range>,
Converts self
into a different StreamError
type. Read more
fn unexpected<E>(info: E) -> Self where
E: for<'s> ErrorInfo<'s, Item, Range>,
fn expected<E>(info: E) -> Self where
E: for<'s> ErrorInfo<'s, Item, Range>,
fn message<E>(info: E) -> Self where
E: for<'s> ErrorInfo<'s, Item, Range>,
fn end_of_input() -> Self
sourceimpl<Item, Range> StreamErrorInto<Item, Range> for Error<Item, Range>
impl<Item, Range> StreamErrorInto<Item, Range> for Error<Item, Range>
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> !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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more