Macro peel_ip::prelude::take_while []

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

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

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

 named!( alpha, take_while!( is_alphanumeric ) );

 let r = alpha(&b"abcd\nefgh"[..]);
 assert_eq!(r, Done(&b"\nefgh"[..], &b"abcd"[..]));