pub trait Finish<I, O, E> {
// Required method
fn finish(self) -> Result<(I, O), E>;
}
Expand description
Helper trait to convert a parser’s result to a more manageable type
Required Methods§
Sourcefn finish(self) -> Result<(I, O), E>
fn finish(self) -> Result<(I, O), E>
converts the parser’s result to a type that is more consumable by error
management libraries. It keeps the same Ok
branch, and merges Err::Error
and Err::Failure
into the Err
side.
warning: if the result is Err(Err::Incomplete(_))
, this method will panic.
- “complete” parsers: It will not be an issue,
Incomplete
is never used - “streaming” parsers:
Incomplete
will be returned if there’s not enough data for the parser to decide, and you should gather more data before parsing again. Once the parser returns eitherOk(_)
,Err(Err::Error(_))
orErr(Err::Failure(_))
, you can get out of the parsing loop and callfinish()
on the parser’s result