1pub use self::de::{from_value, from_value_ref};
2pub use self::se::{to_value, to_value_def};
3
4mod de;
5mod se;
6
7#[cfg(test)]
8mod test {
9 use serde::{Deserialize, Deserializer, Serialize, Serializer};
10 use serde::ser::SerializeMap;
11 use crate::{to_value, Value};
12
13 #[test]
14 fn test_ser() {
15 let s = to_value!(1);
16 assert_eq!(s, Value::I32(1));
17 }
18
19 pub struct A {}
20 impl Serialize for A {
21 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
22 where
23 S: Serializer,
24 {
25 println!("{}", std::any::type_name::<S>());
26 serializer.serialize_map(None)
27 ?.end()
28 }
29 }
30
31 impl<'de> Deserialize<'de> for A {
32 fn deserialize<D>(_deserializer: D) -> Result<Self, D::Error>
33 where
34 D: Deserializer<'de>,
35 {
36 println!("{}", std::any::type_name::<D>());
37 Ok(A {})
38 }
39 }
40
41 #[test]
42 fn test_ser_struct() {
43 let v = to_value!(A{});
44 let _: A = crate::from_value(v).unwrap();
45 }
46}