pub use self::graphic::GraphicScreen; pub use self::text::TextScreen; use orbclient::Event; use syscall::Result; mod graphic; mod text; pub trait Screen { fn width(&self) -> usize; fn height(&self) -> usize; fn resize(&mut self, width: usize, height: usize); fn event(&mut self, flags: usize) -> Result; fn map(&self, offset: usize, size: usize) -> Result; fn input(&mut self, event: &Event); fn read(&mut self, buf: &mut [u8]) -> Result; fn can_read(&self) -> Option; fn write(&mut self, buf: &[u8], sync: bool) -> Result; fn seek(&mut self, pos: usize, whence: usize) -> Result; fn sync(&mut self); fn redraw(&mut self); }