1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
use super::{Coord, Size}; use view::View; /// Trait to implement for renderers that take data and a view that knows how /// to render the data to a grid, and actually draws the result. pub trait Renderer { type Error: ::std::fmt::Debug; fn render_at<V: View<T>, T>( &mut self, view: &mut V, data: &T, offset: Coord, depth: i32, ) -> Result<(), Self::Error>; fn render<V: View<T>, T>(&mut self, view: &mut V, data: &T) -> Result<(), Self::Error> { self.render_at(view, data, Coord::new(0, 0), 0) } fn size(&self) -> Size; }