1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
use serde::*; #[derive(Serialize, Deserialize, Default)] pub struct Visual { pub html: Option<String>, pub text: Option<String>, pub image: Option<String>, pub log: Option<String>, pub markdown: Option<String>, } pub trait Visualize { fn visualize(&self) -> Visual; } pub fn visualize(v: impl Visualize) -> String { serde_json::to_string(&v.visualize()).unwrap() }