pub enum ErrMode<E> {
Incomplete(Needed),
Backtrack(E),
Cut(E),
}
Expand description
The Err
enum indicates the parser was not successful
Variants§
Incomplete(Needed)
There was not enough data to determine the appropriate action
More data needs to be buffered before retrying the parse.
This must only be set when the Stream
is partial, like with
Partial
Convert this into an Backtrack
with Parser::complete_err
Backtrack(E)
The parser failed with a recoverable error (the default).
For example, a parser for json values might include a
dec_uint
as one case in an alt
combiantor. If it fails, the next case should be tried.
Cut(E)
The parser had an unrecoverable error.
The parser was on the right branch, so directly report it to the user rather than trying
other branches. You can use cut_err()
combinator to switch
from ErrMode::Backtrack
to ErrMode::Cut
.
For example, one case in an alt
combinator found a unique prefix
and you want any further errors parsing the case to be reported to the user.
Implementations§
source§impl<E> ErrMode<E>
impl<E> ErrMode<E>
sourcepub fn is_incomplete(&self) -> bool
pub fn is_incomplete(&self) -> bool
Tests if the result is Incomplete
sourcepub fn map<E2, F>(self, f: F) -> ErrMode<E2>where
F: FnOnce(E) -> E2,
pub fn map<E2, F>(self, f: F) -> ErrMode<E2>where F: FnOnce(E) -> E2,
Applies the given function to the inner error
sourcepub fn convert<F>(self) -> ErrMode<F>where
E: ErrorConvert<F>,
pub fn convert<F>(self) -> ErrMode<F>where E: ErrorConvert<F>,
Automatically converts between errors if the underlying type supports it
Trait Implementations§
source§impl<I, EXT, E> FromExternalError<I, EXT> for ErrMode<E>where
E: FromExternalError<I, EXT>,
impl<I, EXT, E> FromExternalError<I, EXT> for ErrMode<E>where E: FromExternalError<I, EXT>,
source§fn from_external_error(input: I, kind: ErrorKind, e: EXT) -> Self
fn from_external_error(input: I, kind: ErrorKind, e: EXT) -> Self
ParseError::from_error_kind
but also include an external error.