use alloc::boxed::Box;
use risc0_zeroio_derive::{Deserialize, Serialize};
use test_log::test;
use super::*;
use crate as risc0_zeroio;
#[derive(Debug, Serialize, Deserialize, PartialEq, Eq)]
struct MyStruct {
foo: u32,
bar: alloc::string::String,
next: Option<Box<MyStruct>>,
}
#[test]
pub fn ser_test() {
let a = MyStruct {
foo: 5,
bar: "hi".into(),
next: None,
};
let b = serialize(&a).unwrap();
let des = MyStruct::deserialize_from(&*b);
let mys: MyStruct = MyStruct::from_ref(&des);
assert_eq!(a, mys);
}
#[test]
pub fn ser_test_link() {
let a = MyStruct {
foo: 5,
bar: "hi".into(),
next: Some(Box::new(MyStruct {
foo: 6,
bar: "Why hello there!".into(),
next: None,
})),
};
let b = serialize(&a).unwrap();
let des = MyStruct::deserialize_from(&*b);
let mys: MyStruct = MyStruct::from_ref(&des);
assert_eq!(a, mys);
}