Avoid panic on pretty string ending in single quote

Fixes #262.
This commit is contained in:
Matti Niemenmaa 2018-10-01 11:58:57 +03:00
parent c836e32f27
commit dce343e926
4 changed files with 20 additions and 0 deletions

View file

@ -585,6 +585,10 @@ impl<'a> Serializer<'a> {
}
}
}
if can_be_pretty && found_singles > 0 && value.ends_with('\'') {
// We cannot escape the ending quote so we must use """
can_be_pretty = false;
}
if !can_be_pretty {
debug_assert!(ty != Type::OnelineTripple);
return Repr::Std(ty);

View file

@ -250,3 +250,7 @@ test!(table_array_nest_no_keys,
test!(dotted_keys,
include_str!("valid/dotted-keys.toml"),
include_str!("valid/dotted-keys.json"));
test!(quote_surrounded_value,
include_str!("valid/quote-surrounded-value.toml"),
include_str!("valid/quote-surrounded-value.json"));

View file

@ -0,0 +1,10 @@
{
"double": {
"type": "string",
"value": "\"double quotes here\""
},
"single": {
"type": "string",
"value": "'single quotes here'"
}
}

View file

@ -0,0 +1,2 @@
double = '"double quotes here"'
single = "'single quotes here'"