aboutsummaryrefslogtreecommitdiff
path: root/src/tui.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tui.rs')
-rw-r--r--src/tui.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/tui.rs b/src/tui.rs
new file mode 100644
index 0000000..7f27ca3
--- /dev/null
+++ b/src/tui.rs
@@ -0,0 +1,20 @@
+use std::io::{self, stdout, Stdout};
+
+use crossterm::{execute, terminal::*};
+use ratatui::prelude::*;
+
+pub type Tui = Terminal<CrosstermBackend<Stdout>>;
+
+pub fn init() -> io::Result<Tui> {
+ execute!(stdout(), EnterAlternateScreen)?;
+ enable_raw_mode()?;
+
+ Terminal::new(CrosstermBackend::new(stdout()))
+}
+
+pub fn restore() -> io::Result<()> {
+ execute!(stdout(), LeaveAlternateScreen)?;
+ disable_raw_mode()?;
+
+ Ok(())
+}