nom::tag!
[−]
[src]
macro_rules! tag ( ($i:expr, $inp: expr) => ( { #[inline(always)] fn as_bytes<T: $crate::AsBytes>(b: &T) -> &[u8] { b.as_bytes() } let expected = $inp; let bytes = as_bytes(&expected); if bytes.len() > $i.len() { $crate::IResult::Incomplete($crate::Needed::Size(bytes.len())) } else if &$i[0..bytes.len()] == bytes { $crate::IResult::Done(&$i[bytes.len()..], &$i[0..bytes.len()]) } else { $crate::IResult::Error($crate::Err::Position($crate::ErrorCode::Tag as u32, $i)) } } ); );
tag!(&[T]: nom::AsBytes) => &[T] -> IResult<&[T], &[T]>
declares a byte array as a suite to recognize
consumes the recognized characters
named!(x, tag!("abcd")); let r = x(&b"abcdefgh"[..]); assert_eq!(r, Done(&b"efgh"[..], &b"abcd"[..]));