1 use nom::{Err, error::ErrorKind, IResult}; 2 use nom::character::complete::digit1; 3 use nom::bytes::complete::escaped; 4 use nom::character::complete::one_of; 5 6 fn esc(s: &str) -> IResult<&str, &str> { 7 escaped(digit1, '\\', one_of("\"n\\"))(s) 8 } 9 10 #[cfg(feature="alloc")] 11 fn esc_trans(s: &str) -> IResult<&str, String> { 12 use nom::bytes::complete::{escaped_transform, tag}; 13 escaped_transform(digit1, '\\', |i: &str| tag("n")(i))(s) 14 } 15 16 #[test] 17 fn test_escaped() { 18 assert_eq!(esc("abcd"), Err(Err::Error(("abcd", ErrorKind::Escaped)))); 19 } 20 21 #[test] 22 #[cfg(feature="alloc")] 23 fn test_escaped_transform() { 24 assert_eq!(esc_trans("abcd"), Err(Err::Error(("abcd", ErrorKind::EscapedTransform)))); 25 } 26