Switch to escaped_transform to unescape the text.
This commit is contained in:
parent
5463ed2cdf
commit
a6e48aee6a
@ -1,5 +1,6 @@
|
||||
use nom::branch::alt;
|
||||
use nom::bytes::complete::escaped;
|
||||
use nom::bytes::complete::escaped_transform;
|
||||
use nom::bytes::complete::is_a;
|
||||
use nom::bytes::complete::is_not;
|
||||
use nom::bytes::complete::tag;
|
||||
@ -328,10 +329,10 @@ pub fn template(i: &str) -> IResult<&str, Template> {
|
||||
Ok((remaining, Template { contents: contents }))
|
||||
}
|
||||
|
||||
fn quoted_string(i: &str) -> IResult<&str, &str> {
|
||||
fn quoted_string(i: &str) -> IResult<&str, String> {
|
||||
delimited(
|
||||
tag(r#"""#),
|
||||
escaped(is_not(r#"\""#), '\\', one_of(r#"\""#)),
|
||||
escaped_transform(is_not(r#"\""#), '\\', one_of(r#"\""#)),
|
||||
tag(r#"""#),
|
||||
)(i)
|
||||
}
|
||||
@ -614,6 +615,9 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn test_temp_string() {
|
||||
assert_eq!(quoted_string(r#""foo\"bar""#), Ok(("", r#"foo\"bar"#)));
|
||||
assert_eq!(
|
||||
quoted_string(r#""foo\"bar""#),
|
||||
Ok(("", r#"foo"bar"#.to_owned()))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user