Expand description
Error management
Errors are designed with multiple needs in mind:
- Accumulate more context as the error goes up the parser chain
- Distinguish between recoverable errors, unrecoverable errors, and more data is needed
- Have a very low overhead, as errors are often discarded by the calling parser (examples:
many0,alt) - Can be modified according to the user’s needs, because some languages need a lot more information
- Help thread-through the stream
To abstract these needs away from the user, generally winnow parsers use the IResult
alias, rather than Result. finish is
provided for top-level parsers to integrate with your application’s error reporting.
Error types include:
()ErrorVerboseError- [Custom errors][crate::_topic::error]
Structs
Default error type, only contains the error’ location and kind
Accumulates error information while backtracking
Enums
The
Err enum indicates the parser was not successfulProvide some minor debug context for errors
Contains information on needed data if a parser returned
IncompleteError context for
VerboseErrorTraits
Used by
Parser::context to add custom data to error while backtrackingEquivalent of
From implementation to avoid orphan rules in bits parsersFinishIResultDeprecated
Extension trait to convert a parser’s
IResult to a more manageable typeCreate a new error with an external error, from
std::str::FromStrThe basic
Parser trait for errorsFunctions
Transforms a
VerboseError into a trace with input position information