Diffstat (limited to 'tests/serde_deserializer.rs')
| -rw-r--r-- | tests/serde_deserializer.rs | 19 |
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 }); +} |