1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
use super::{MJTitle, NAME}; use crate::json_children_deserializer; use crate::json_children_serializer; use serde::de::{Error, MapAccess}; use serde::ser::SerializeMap; use std::fmt; json_children_serializer!(MJTitle, NAME); json_children_deserializer!(MJTitle, MJTitleVisitor, NAME); #[cfg(test)] mod tests { use crate::mj_title::MJTitle; #[test] fn serialize() { let elt = MJTitle::from("Hello World"); assert_eq!( serde_json::to_string(&elt).unwrap(), r#"{"type":"mj-title","children":"Hello World"}"# ); } #[test] fn deserialize() { let elt = MJTitle::from("Hello World"); let json = serde_json::to_string(&elt).unwrap(); let res: MJTitle = serde_json::from_str(&json).unwrap(); assert_eq!(res.children, elt.children); } }