use crate::{Metrics, MouseCursor}; use raw_window_handle::HasRawWindowHandle; pub trait Windowed: super::Renderer + Sized { type Target: Target; fn new() -> Self; fn draw( &mut self, output: &Self::Output, metrics: Option, target: &mut Self::Target, ) -> MouseCursor; } pub trait Target { type Renderer; fn new( window: &W, width: u16, height: u16, renderer: &Self::Renderer, ) -> Self; fn resize(&mut self, width: u16, height: u16, renderer: &Self::Renderer); }