[][src]Function gchemol_parser::parsers::complete::is_a

pub fn is_a<T, Input, Error>(arr: T) -> impl Fn(Input) where
    Error: ParseError<Input>,
    Input: InputTakeAtPosition,
    T: InputLength + FindToken<<Input as InputTakeAtPosition>::Item>, 

Returns the longest slice of the matches the pattern

The parser will return the longest slice consisting of the characters in provided in the combinator's argument

It will return a Err(Err::Error((_, ErrorKind::IsA))) if the pattern wasn't met

Example

use nom::bytes::complete::is_a;

fn hex(s: &str) -> IResult<&str, &str> {
  is_a("1234567890ABCDEF")(s)
}

assert_eq!(hex("123 and voila"), Ok((" and voila", "123")));
assert_eq!(hex("DEADBEEF and others"), Ok((" and others", "DEADBEEF")));
assert_eq!(hex("BADBABEsomething"), Ok(("something", "BADBABE")));
assert_eq!(hex("D15EA5E"), Ok(("", "D15EA5E")));
assert_eq!(hex(""), Err(Err::Error(("", ErrorKind::IsA))));