use activitystreams::{ object::Video, primitives::{MimeMediaType, XsdAnyUri, XsdDuration}, }; fn main() -> Result<(), Box> { let mut v = Video::default(); v.as_mut() .set_context_xsd_any_uri("https://www.w3.org/ns/activitystreams".parse::()?) .set_id("https://example.com/@example/lions".parse::()?) .set_url_xsd_any_uri("https://example.com/@example/lions/video.webm".parse::()?) .set_name_xsd_string("My Cool Video") .set_summary_xsd_string("A video about some cool lions") .set_media_type("video/webm".parse::()?) .set_duration("PT4M20S".parse::()?); println!("Video, {:#?}", v); let s = serde_json::to_string(&v)?; println!("json, {}", s); let v: Video = serde_json::from_str(&s)?; println!("Video again, {:#?}", v); Ok(()) }