use serde_json::json;
use treaty::walkers::serde::deserializer::DeserializerWalker;
use treaty::{transform, Build, BuildExt as _};
use effectful::SendSync;
use macro_rules_attribute::derive;
mod common;
#[test]
fn demo() {
let x = json!(true);
let y = bool::build(DeserializerWalker::new(x));
assert!(y.unwrap());
}
#[test]
fn demo2() {
let mut de = serde_json::Deserializer::from_str("42");
let y = u8::build(DeserializerWalker::new(&mut de));
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: 42 });
}