pub fn opt<Input: Stream, Output, Error, ParseNext>(
parser: ParseNext,
) -> impl Parser<Input, Option<Output>, Error>where
ParseNext: Parser<Input, Output, Error>,
Error: ParserError<Input>,Expand description
Apply a Parser, producing None on ErrMode::Backtrack.
To chain an error up, see cut_err.
ยงExample
use winnow::combinator::opt;
use winnow::ascii::alpha1;
fn parser<'i>(i: &mut &'i str) -> ModalResult<Option<&'i str>> {
opt(alpha1).parse_next(i)
}
assert_eq!(parser.parse_peek("abcd;"), Ok((";", Some("abcd"))));
assert_eq!(parser.parse_peek("123;"), Ok(("123;", None)));