pub fn opt<I, E, F>(
f: F,
) -> impl Parser<I, Output = Option<<F as Parser<I>>::Output>, Error = E>
Expand description
Optional parser, will return None
on Err::Error
.
To chain an error up, see cut
.
use nom::combinator::opt;
use nom::character::complete::alpha1;
fn parser(i: &str) -> IResult<&str, Option<&str>> {
opt(alpha1).parse(i)
}
assert_eq!(parser("abcd;"), Ok((";", Some("abcd"))));
assert_eq!(parser("123;"), Ok(("123;", None)));