[][src]Macro nom::take_till1

macro_rules! take_till1 {
    ($input:expr, $submac:ident!( $($args:tt)* )) => { ... };
    ($input:expr, $f:expr) => { ... };
}

take_till1!(T -> bool) => &[T] -> IResult<&[T], &[T]> returns the longest non empty list of bytes until the provided function succeeds.

The argument is either a function &[T] -> bool or a macro returning a bool.

Example

 named!( till1_colon, take_till1!(|ch| ch == b':') );

 let r = till1_colon(&b"abcd:efgh"[..]);
 assert_eq!(r, Ok((&b":efgh"[..], &b"abcd"[..])));

 let r2 = till1_colon(&b":abcdefgh"[..]); // empty match is error
 assert_eq!(r2, Err(Err::Error(error_position!(&b":abcdefgh"[..], ErrorKind::TakeTill1))));