aboutsummaryrefslogtreecommitdiffstats
path: root/src/tui/backend/mod.rs
diff options
context:
space:
mode:
authorConrad Ludgate <conradludgate@gmail.com>2023-02-10 17:25:43 +0000
committerGitHub <noreply@github.com>2023-02-10 17:25:43 +0000
commitedda1b741a4a0816eb6e62eafd69fc9896603cf5 (patch)
treecc5cb45caecc4fbe6b34e08f2347fdfdf897d0b5 /src/tui/backend/mod.rs
parentBump debian from bullseye-20221205-slim to bullseye-20230208-slim (#701) (diff)
downloadatuin-edda1b741a4a0816eb6e62eafd69fc9896603cf5.zip
crossterm support (#331)
* crossterm v2 * patch crossterm * fix-version * no more tui dependency * lints
Diffstat (limited to 'src/tui/backend/mod.rs')
-rw-r--r--src/tui/backend/mod.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/tui/backend/mod.rs b/src/tui/backend/mod.rs
new file mode 100644
index 00000000..1a197e79
--- /dev/null
+++ b/src/tui/backend/mod.rs
@@ -0,0 +1,20 @@
+use std::io;
+
+use crate::tui::buffer::Cell;
+use crate::tui::layout::Rect;
+
+mod crossterm;
+pub use self::crossterm::CrosstermBackend;
+
+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>;
+}