raui_core/
renderer.rs

1//! Renderer traits
2
3use 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}