From 69576569a7283ba874893fc71b6bff9407d823a6 Mon Sep 17 00:00:00 2001 From: Alan Du Date: Thu, 1 Jun 2017 20:54:17 +0100 Subject: Allow serializing keys with \n in them Use special quoted form Closes https://github.com/alexcrichton/toml-rs/issues/185 --- src/ser.rs | 8 -------- 1 file changed, 8 deletions(-) (limited to 'src/ser.rs') 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", -- cgit v1.2.3 From e4fdd0e4e49842d50f75e4d80f555fa783c0709f Mon Sep 17 00:00:00 2001 From: Alan Du Date: Thu, 1 Jun 2017 22:47:24 +0100 Subject: Add toml::ser::Error::KeyNewline back in Avoid a breaking change --- src/ser.rs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/ser.rs') diff --git a/src/ser.rs b/src/ser.rs index 9fa0678..77db867 100644 --- a/src/ser.rs +++ b/src/ser.rs @@ -107,6 +107,10 @@ pub enum Error { /// attempted where the key of a map was not a string. KeyNotString, + /// An error that we never omit but keep for backwards compatibility + #[doc(hidden)] + KeyNewline, + /// Arrays in TOML must have a homogenous type, but a heterogeneous array /// was emitted. ArrayMixedType, @@ -1047,6 +1051,7 @@ impl fmt::Display for Error { Error::NumberInvalid => "a serialized number was invalid".fmt(f), Error::UnsupportedNone => "unsupported None value".fmt(f), Error::Custom(ref s) => s.fmt(f), + Error::KeyNewline => unreachable!(), Error::__Nonexhaustive => panic!(), } } @@ -1063,6 +1068,7 @@ impl error::Error for Error { Error::NumberInvalid => "a serialized number was invalid", Error::UnsupportedNone => "unsupported None value", Error::Custom(_) => "custom error", + Error::KeyNewline => unreachable!(), Error::__Nonexhaustive => panic!(), } } -- cgit v1.2.3