pub trait Renderer: Send {
// Required method
fn render_frame(
&mut self,
frame: RenderFrame,
surface: &mut dyn RenderSurface,
) -> Result<()>;
// Provided method
fn render_canvas(
&mut self,
canvas: Canvas,
surface: &mut dyn RenderSurface,
) -> Result<()> { ... }
}