use crate::Renderer;
pub trait Draw<R>
where
R: Renderer,
{
type Error;
fn render(&self, renderer: &mut R) -> Result<(), Self::Error>;
}
impl<F, R, E> Draw<R> for F
where
R: Renderer,
F: Fn(&mut R) -> Result<(), E>,
{
type Error = E;
fn render(&self, renderer: &mut R) -> Result<(), Self::Error> {
self(renderer)
}
}