aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ser.rs8
-rw-r--r--tests/valid.rs3
-rw-r--r--tests/valid/key-quote-newline.json3
-rw-r--r--tests/valid/key-quote-newline.toml1
4 files changed, 7 insertions, 8 deletions
diff --git a/src/ser.rs b/src/ser.rs
index 8f6b366..9fa0678 100644
--- a/src/ser.rs
+++ b/src/ser.rs
@@ -107,9 +107,6 @@ pub enum Error {
/// attempted where the key of a map was not a string.
KeyNotString,
- /// Keys in maps are not allowed to have newlines.
- KeyNewline,
-
/// Arrays in TOML must have a homogenous type, but a heterogeneous array
/// was emitted.
ArrayMixedType,
@@ -624,9 +621,6 @@ impl<'a, 'b> ser::SerializeMap for SerializeTable<'a, 'b> {
SerializeTable::Table { ref mut key, .. } => {
key.truncate(0);
*key = input.serialize(StringExtractor)?;
- if key.contains('\n') {
- return Err(Error::KeyNewline)
- }
}
}
Ok(())
@@ -1047,7 +1041,6 @@ impl fmt::Display for Error {
match *self {
Error::UnsupportedType => "unsupported Rust type".fmt(f),
Error::KeyNotString => "map key was not a string".fmt(f),
- Error::KeyNewline => "map keys cannot contain newlines".fmt(f),
Error::ArrayMixedType => "arrays cannot have mixed types".fmt(f),
Error::ValueAfterTable => "values must be emitted before tables".fmt(f),
Error::DateInvalid => "a serialized date was invalid".fmt(f),
@@ -1064,7 +1057,6 @@ impl error::Error for Error {
match *self {
Error::UnsupportedType => "unsupported Rust type",
Error::KeyNotString => "map key was not a string",
- Error::KeyNewline => "map keys cannot contain newlines",
Error::ArrayMixedType => "arrays cannot have mixed types",
Error::ValueAfterTable => "values must be emitted before tables",
Error::DateInvalid => "a serialized date was invalid",
diff --git a/tests/valid.rs b/tests/valid.rs
index b3cc096..e7577ad 100644
--- a/tests/valid.rs
+++ b/tests/valid.rs
@@ -193,6 +193,9 @@ test!(example_bom,
test!(datetime_truncate,
include_str!("valid/datetime-truncate.toml"),
include_str!("valid/datetime-truncate.json"));
+test!(key_quote_newline,
+ include_str!("valid/key-quote-newline.toml"),
+ include_str!("valid/key-quote-newline.json"));
test!(table_array_nest_no_keys,
include_str!("valid/table-array-nest-no-keys.toml"),
include_str!("valid/table-array-nest-no-keys.json"));
diff --git a/tests/valid/key-quote-newline.json b/tests/valid/key-quote-newline.json
new file mode 100644
index 0000000..12473e4
--- /dev/null
+++ b/tests/valid/key-quote-newline.json
@@ -0,0 +1,3 @@
+{
+ "\n": {"type": "integer", "value": "1"}
+}
diff --git a/tests/valid/key-quote-newline.toml b/tests/valid/key-quote-newline.toml
new file mode 100644
index 0000000..a2639bf
--- /dev/null
+++ b/tests/valid/key-quote-newline.toml
@@ -0,0 +1 @@
+"\n" = 1