aboutsummaryrefslogtreecommitdiff
path: root/test-suite/tests/tables-last.rs
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2017-11-20 13:39:31 -0600
committerGitHub <noreply@github.com>2017-11-20 13:39:31 -0600
commit823d1f58305113b38d62eba7e87dc3f4097acbac (patch)
tree38d92a55f2bde9b02fe4cfb78dd9c8f6f29ee9e3 /test-suite/tests/tables-last.rs
parent3b77b5fb6520c7bf13be6308978efa8a185d0c12 (diff)
parentd53db5c5335fb73389e5a78c190bf2a1903f3b6a (diff)
downloadmilf-rs-823d1f58305113b38d62eba7e87dc3f4097acbac.tar.gz
milf-rs-823d1f58305113b38d62eba7e87dc3f4097acbac.zip
Merge pull request #217 from dtolnay/macro
A toml macro
Diffstat (limited to 'test-suite/tests/tables-last.rs')
-rw-r--r--test-suite/tests/tables-last.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/test-suite/tests/tables-last.rs b/test-suite/tests/tables-last.rs
new file mode 100644
index 0000000..d05c8f0
--- /dev/null
+++ b/test-suite/tests/tables-last.rs
@@ -0,0 +1,30 @@
+#[macro_use]
+extern crate serde_derive;
+extern crate toml;
+
+use std::collections::HashMap;
+
+#[derive(Serialize)]
+struct A {
+ #[serde(serialize_with = "toml::ser::tables_last")]
+ vals: HashMap<&'static str, Value>,
+}
+
+#[derive(Serialize)]
+#[serde(untagged)]
+enum Value {
+ Map(HashMap<&'static str, &'static str>),
+ Int(i32),
+}
+
+#[test]
+fn always_works() {
+ let mut a = A { vals: HashMap::new() };
+ a.vals.insert("foo", Value::Int(0));
+
+ let mut sub = HashMap::new();
+ sub.insert("foo", "bar");
+ a.vals.insert("bar", Value::Map(sub));
+
+ toml::to_string(&a).unwrap();
+}