Diffstat (limited to 'tests/serde_deserializer.rs')
-rw-r--r--tests/serde_deserializer.rs19
1 files changed, 18 insertions, 1 deletions
diff --git a/tests/serde_deserializer.rs b/tests/serde_deserializer.rs
index 0b4bd79..8b66291 100644
--- a/tests/serde_deserializer.rs
+++ b/tests/serde_deserializer.rs
@@ -1,6 +1,8 @@
use serde_json::json;
use treaty::walkers::serde::deserializer::DeserializerWalker;
-use treaty::BuildExt as _;
+use treaty::{Build, BuildExt as _};
+
+use macro_rules_attribute::derive;
mod common;
@@ -22,3 +24,18 @@ fn demo2() {
assert_eq!(y.unwrap(), 42);
}
+
+#[derive(Build!, Debug, PartialEq)]
+struct X {
+ a: bool,
+ b: i64,
+}
+
+#[test]
+fn demo3() {
+ let x = json!({ "a": true, "b": 42 });
+
+ let y = X::build(DeserializerWalker::new(x));
+
+ assert_eq!(y.unwrap(), X { a: true, b: 101 });
+}