From 219de2dd4d60420f810cb60496d41f164e5c06b0 Mon Sep 17 00:00:00 2001 From: Garrett Berg Date: Wed, 26 Jul 2017 22:08:22 -0600 Subject: close #199: add header information for empty structs - also add test which fails without this change - also add a few helpful unit tests to table --- tests/serde.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'tests/serde.rs') diff --git a/tests/serde.rs b/tests/serde.rs index c61edf5..57fa5db 100644 --- a/tests/serde.rs +++ b/tests/serde.rs @@ -554,3 +554,25 @@ fn newtypes2() { }), } } + +#[derive(Debug, Default, PartialEq, Serialize, Deserialize)] +struct CanBeEmpty { + a: Option, + b: Option, +} + +#[test] +fn table_structs_empty() { + let text = "[bar]\n\n[baz]\n\n[bazv]\na = \"foo\"\n\n[foo]\n"; + let value: BTreeMap = toml::from_str(text).unwrap(); + let mut expected: BTreeMap = BTreeMap::new(); + expected.insert("bar".to_string(), CanBeEmpty::default()); + expected.insert("baz".to_string(), CanBeEmpty::default()); + expected.insert( + "bazv".to_string(), + CanBeEmpty {a: Some("foo".to_string()), b: None}, + ); + expected.insert("foo".to_string(), CanBeEmpty::default()); + assert_eq!(value, expected); + assert_eq!(toml::to_string(&value).unwrap(), text); +} -- cgit v1.2.3