Function peek

Source
pub fn peek<Input, Output, Error, ParseNext>(
    parser: ParseNext,
) -> impl Parser<Input, Output, Error>
where Input: Stream, Error: ParserError<Input>, ParseNext: Parser<Input, Output, Error>,
Expand description

Apply the parser without advancing the input.

To lookahead and only advance on success, see opt.

§Example

use winnow::combinator::peek;
use winnow::ascii::alpha1;

fn parser<'i>(input: &mut &'i str) -> ModalResult<&'i str> {
    peek(alpha1).parse_next(input)
}

assert_eq!(parser.parse_peek("abcd;"), Ok(("abcd;", "abcd")));
assert!(parser.parse_peek("123;").is_err());