Macro peel_ip::prelude::escaped []

macro_rules! escaped {
    (
__impl $ i : expr , $ normal : ident ! ( $ ( $ args : tt ) * ) , $
control_char : expr , $ escapable : ident ! ( $ ( $ args2 : tt ) * ) ) => { ... };
    (
__impl_1 $ i : expr , $ submac1 : ident ! ( $ ( $ args : tt ) * ) , $
control_char : expr , $ submac2 : ident ! ( $ ( $ args2 : tt ) * ) ) => { ... };
    (
__impl_1 $ i : expr , $ submac1 : ident ! ( $ ( $ args : tt ) * ) , $
control_char : expr , $ g : expr ) => { ... };
    (
$ i : expr , $ submac : ident ! ( $ ( $ args : tt ) * ) , $ control_char :
expr , $ ( $ rest : tt ) + ) => { ... };
    (
$ i : expr , $ f : expr , $ control_char : expr , $ ( $ rest : tt ) + ) => { ... };
}

escaped!(&[T] -> IResult<&[T], &[T]>, T, &[T] -> IResult<&[T], &[T]>) => &[T] -> IResult<&[T], &[T]> matches a byte string with escaped characters.

The first argument matches the normal characters (it must not accept the control character), the second argument is the control character (like \ in most languages), the third argument matches the escaped characters

 named!(esc, escaped!(call!(alpha), '\\', one_of!("\"n\\")));
 assert_eq!(esc(&b"abcd"[..]), Done(&b""[..], &b"abcd"[..]));
 assert_eq!(esc(&b"ab\\\"cd"[..]), Done(&b""[..], &b"ab\\\"cd"[..]));