Trait nom::Finish

source ·
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§

source

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 either Ok(_), Err(Err::Error(_)) or Err(Err::Failure(_)), you can get out of the parsing loop and call finish() on the parser’s result

Implementors§

source§

impl<I, O, E> Finish<I, O, E> for IResult<I, O, E>