diff options
-rw-r--r-- | src/ser.rs | 4 | ||||
-rw-r--r-- | test-suite/tests/valid.rs | 4 | ||||
-rw-r--r-- | test-suite/tests/valid/quote-surrounded-value.json | 10 | ||||
-rw-r--r-- | test-suite/tests/valid/quote-surrounded-value.toml | 2 |
4 files changed, 20 insertions, 0 deletions
@@ -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); diff --git a/test-suite/tests/valid.rs b/test-suite/tests/valid.rs index d032ba5..7c1691c 100644 --- a/test-suite/tests/valid.rs +++ b/test-suite/tests/valid.rs @@ -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")); diff --git a/test-suite/tests/valid/quote-surrounded-value.json b/test-suite/tests/valid/quote-surrounded-value.json new file mode 100644 index 0000000..84495cf --- /dev/null +++ b/test-suite/tests/valid/quote-surrounded-value.json @@ -0,0 +1,10 @@ +{ + "double": { + "type": "string", + "value": "\"double quotes here\"" + }, + "single": { + "type": "string", + "value": "'single quotes here'" + } +} diff --git a/test-suite/tests/valid/quote-surrounded-value.toml b/test-suite/tests/valid/quote-surrounded-value.toml new file mode 100644 index 0000000..dc8697e --- /dev/null +++ b/test-suite/tests/valid/quote-surrounded-value.toml @@ -0,0 +1,2 @@ +double = '"double quotes here"' +single = "'single quotes here'" |