[][src]Function gchemol_parser::parsers::streaming::tag_no_case

pub fn tag_no_case<T, Input, Error>(tag: T) -> impl Fn(Input) where
    Error: ParseError<Input>,
    Input: InputTake + Compare<T>,
    T: InputLength + Clone

Recognizes a case insensitive pattern

The input data will be compared to the tag combinator's argument and will return the part of the input that matches the argument with no regard to case

Example

use nom::bytes::streaming::tag_no_case;

fn parser(s: &str) -> IResult<&str, &str> {
  tag_no_case("hello")(s)
}

assert_eq!(parser("Hello, World!"), Ok((", World!", "Hello")));
assert_eq!(parser("hello, World!"), Ok((", World!", "hello")));
assert_eq!(parser("HeLlO, World!"), Ok((", World!", "HeLlO")));
assert_eq!(parser("Something"), Err(Err::Error(("Something", ErrorKind::Tag))));
assert_eq!(parser(""), Err(Err::Incomplete(Needed::Size(5))));