1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
use sdl2::render::Canvas; use sdl2::render::RenderTarget; use super::*; use util::RenderSurface; pub mod imp; pub mod font; pub mod util; pub struct Render<C> where C: RenderTarget, Canvas<C>: RenderSurface { pub c: Canvas<C>, } impl<C> Render<C> where C: RenderTarget, Canvas<C>: RenderSurface { pub fn from_canvas(c: Canvas<C>) -> Self { Self{ c } } } impl<C> Deref for Render<C> where C: RenderTarget, Canvas<C>: RenderSurface { type Target = Canvas<C>; fn deref(&self) -> &Self::Target { &self.c } } impl<C> DerefMut for Render<C> where C: RenderTarget, Canvas<C>: RenderSurface { fn deref_mut(&mut self) -> &mut Self::Target { &mut self.c } } impl<C> AsRefMut<Canvas<C>> for Render<C> where C: RenderTarget, Canvas<C>: RenderSurface { fn as_ref(&self) -> &Canvas<C> { &self.c } fn as_mut(&mut self) -> &mut Canvas<C> { &mut self.c } }