raui_yaml_renderer/
lib.rs

1use raui_core::{
2    layout::{CoordsMapping, Layout},
3    renderer::Renderer,
4    widget::unit::WidgetUnit,
5};
6
7#[derive(Debug, Default, Copy, Clone)]
8pub struct YamlRenderer;
9
10impl Renderer<String, serde_yaml::Error> for YamlRenderer {
11    fn render(
12        &mut self,
13        tree: &WidgetUnit,
14        _: &CoordsMapping,
15        _layout: &Layout,
16    ) -> Result<String, serde_yaml::Error> {
17        serde_yaml::to_string(tree)
18    }
19}
20
21#[derive(Debug, Default, Copy, Clone)]
22pub struct YamlValueRenderer;
23
24impl Renderer<serde_yaml::Value, serde_yaml::Error> for YamlValueRenderer {
25    fn render(
26        &mut self,
27        tree: &WidgetUnit,
28        _: &CoordsMapping,
29        _: &Layout,
30    ) -> Result<serde_yaml::Value, serde_yaml::Error> {
31        serde_yaml::to_value(tree)
32    }
33}