diff options
author | Blaž Hrastnik | 2021-05-09 08:52:55 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2021-05-09 08:52:55 +0000 |
commit | 35606a3daa7ee273845a12f3e03728e0ae23928e (patch) | |
tree | 643684eaff6627dbebc4156d33fdb541bf87bbd9 /helix-tui/src/backend/mod.rs | |
parent | 6c705f09e88a4b63c4ed854bc9e956b0539ca8af (diff) |
Inline tui as helix-tui fork.
We only rely on some of the rendering primitives and implement our
Cursive-style compositor on top.
Diffstat (limited to 'helix-tui/src/backend/mod.rs')
-rw-r--r-- | helix-tui/src/backend/mod.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/helix-tui/src/backend/mod.rs b/helix-tui/src/backend/mod.rs new file mode 100644 index 00000000..ed125200 --- /dev/null +++ b/helix-tui/src/backend/mod.rs @@ -0,0 +1,25 @@ +use std::io; + +use crate::buffer::Cell; +use crate::layout::Rect; + +#[cfg(feature = "crossterm")] +mod crossterm; +#[cfg(feature = "crossterm")] +pub use self::crossterm::CrosstermBackend; + +mod test; +pub use self::test::TestBackend; + +pub trait Backend { + fn draw<'a, I>(&mut self, content: I) -> Result<(), io::Error> + where + I: Iterator<Item = (u16, u16, &'a Cell)>; + fn hide_cursor(&mut self) -> Result<(), io::Error>; + fn show_cursor(&mut self) -> Result<(), io::Error>; + fn get_cursor(&mut self) -> Result<(u16, u16), io::Error>; + fn set_cursor(&mut self, x: u16, y: u16) -> Result<(), io::Error>; + fn clear(&mut self) -> Result<(), io::Error>; + fn size(&self) -> Result<Rect, io::Error>; + fn flush(&mut self) -> Result<(), io::Error>; +} |