use nom::bytes::complete::escaped; use nom::character::complete::digit1; use nom::character::complete::one_of; use nom::{error::ErrorKind, Err, IResult}; fn esc(s: &str) -> IResult<&str, &str, (&str, ErrorKind)> { escaped(digit1, '\\', one_of("\"n\\"))(s) } #[cfg(feature = "alloc")] fn esc_trans(s: &str) -> IResult<&str, String, (&str, ErrorKind)> { use nom::bytes::complete::{escaped_transform, tag}; escaped_transform(digit1, '\\', tag("n"))(s) } #[test] fn test_escaped() { assert_eq!(esc("abcd"), Err(Err::Error(("abcd", ErrorKind::Escaped)))); } #[test] #[cfg(feature = "alloc")] fn test_escaped_transform() { assert_eq!( esc_trans("abcd"), Err(Err::Error(("abcd", ErrorKind::EscapedTransform))) ); }