on 2158366 help sign in
26 lines 810 B history raw
1use std::io;
3use crate::buffer::Cell;
5use helix_view::graphics::{CursorKind, Rect};
7#[cfg(feature = "crossterm")]
8mod crossterm;
9#[cfg(feature = "crossterm")]
10pub use self::crossterm::CrosstermBackend;
12mod test;
13pub use self::test::TestBackend;
15pub trait Backend {
16 fn draw<'a, I>(&mut self, content: I) -> Result<(), io::Error>
17 where
18 I: Iterator<Item = (u16, u16, &'a Cell)>;
19 fn hide_cursor(&mut self) -> Result<(), io::Error>;
20 fn show_cursor(&mut self, kind: CursorKind) -> Result<(), io::Error>;
21 fn get_cursor(&mut self) -> Result<(u16, u16), io::Error>;
22 fn set_cursor(&mut self, x: u16, y: u16) -> Result<(), io::Error>;
23 fn clear(&mut self) -> Result<(), io::Error>;
24 fn size(&self) -> Result<Rect, io::Error>;
25 fn flush(&mut self) -> Result<(), io::Error>;