use op_reflect::*;
use proptest::prelude::*;
use serde::{Deserialize, Serialize};
pub fn single_type<
T: Arbitrary
+ Reflect
+ Serialize
+ for<'d> Deserialize<'d>
+ PartialEq
+ std::fmt::Debug
+ 'static,
>() {
let mut db = Db::new();
T::register(&mut db);
proptest::proptest!(|(orig: T)| {
let json_val = db.serialize(serde_json::value::Serializer, &orig)?;
let deser: T = db.deserialize(json_val)?;
prop_assert_eq!(orig, deser)
})
}