[][src]Function gchemol_parser::parsers::map

pub fn map<I, O1, O2, E, F, G>(first: F, second: G) -> impl Fn(I) where
    E: ParseError<I>,
    F: Fn(I) -> Result<(I, O1), Err<E>>,
    G: Fn(O1) -> O2, 

maps a function on the result of a parser

use nom::character::complete::digit1;
use nom::combinator::map;

let parse = map(digit1, |s: &str| s.len());

// the parser will count how many characters were returned by digit1
assert_eq!(parse("123456"), Ok(("", 6)));

// this will fail if digit1 fails
assert_eq!(parse("abc"), Err(Err::Error(("abc", ErrorKind::Digit))));