nom::filter!
[−]
[src]
macro_rules! filter( ($input:expr, $submac:ident!( $($args:tt)* )) => ( { let mut index = 0; for idx in 0..$input.len() { index = idx; if !$submac!($input[idx], $($args)*) { break; } } if index == 0 { $crate::IResult::Error($crate::Err::Position($crate::ErrorCode::Filter as u32,$input)) } else { $crate::IResult::Done(&$input[index..], &$input[0..index]) } } ); ($input:expr, $f:expr) => ( filter!($input, call!($f)); ); );
returns the longest list of bytes until the provided parser fails
named!( alpha, filter!( is_alphanumeric ) ); let r = alpha(&b"abcd\nefgh"[..]); assert_eq!(r, Done(&b"\nefgh"[..], &b"abcd"[..]));