1use crate::{
4 layout::{CoordsMapping, Layout},
5 widget::unit::WidgetUnit,
6};
7
8pub trait Renderer<T, E> {
9 fn render(
10 &mut self,
11 tree: &WidgetUnit,
12 mapping: &CoordsMapping,
13 layout: &Layout,
14 ) -> Result<T, E>;
15}
16
17#[derive(Debug, Default, Copy, Clone)]
18pub struct RawRenderer;
19
20impl Renderer<WidgetUnit, ()> for RawRenderer {
21 fn render(
22 &mut self,
23 tree: &WidgetUnit,
24 _: &CoordsMapping,
25 _: &Layout,
26 ) -> Result<WidgetUnit, ()> {
27 Ok(tree.clone())
28 }
29}