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
use raui_core::{layout::Layout, renderer::Renderer, widget::unit::WidgetUnit}; use serde::{Deserialize, Serialize}; #[derive(Debug, Default, Copy, Clone, Serialize, Deserialize)] pub struct JsonRenderer { pub pretty: bool, } impl Renderer<String, serde_json::Error> for JsonRenderer { fn render(&mut self, tree: &WidgetUnit, _layout: &Layout) -> Result<String, serde_json::Error> { if self.pretty { serde_json::to_string_pretty(tree) } else { serde_json::to_string(tree) } } } impl Renderer<serde_json::Value, serde_json::Error> for JsonRenderer { fn render( &mut self, tree: &WidgetUnit, _layout: &Layout, ) -> Result<serde_json::Value, serde_json::Error> { serde_json::to_value(tree) } }