summaryrefslogtreecommitdiff
path: root/src/tui.rs
diff options
context:
space:
mode:
authorNathan Reiner <nathan@nathanreiner.xyz>2024-07-25 00:40:37 +0200
committerNathan Reiner <nathan@nathanreiner.xyz>2024-07-25 00:40:37 +0200
commit58b305b9f6d13007d2ea62775054c95177f81092 (patch)
tree2123cb5379aa69476b1e549e0bcacc08d67fba71 /src/tui.rs
first sketch
Diffstat (limited to 'src/tui.rs')
-rw-r--r--src/tui.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/tui.rs b/src/tui.rs
new file mode 100644
index 0000000..5669855
--- /dev/null
+++ b/src/tui.rs
@@ -0,0 +1,22 @@
+use std::io::{self, stdout, Stdout};
+
+use ratatui::{backend::CrosstermBackend, crossterm::{terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, ExecutableCommand}, Terminal};
+
+
+pub type Tui = Terminal<CrosstermBackend<Stdout>>;
+
+pub fn init() -> io::Result<Tui> {
+ stdout().execute(EnterAlternateScreen)?;
+ enable_raw_mode()?;
+ let mut terminal = Terminal::new(CrosstermBackend::new(stdout()))?;
+
+ terminal.clear()?;
+
+ Ok(terminal)
+}
+
+pub fn restore() -> io::Result<()> {
+ stdout().execute(LeaveAlternateScreen)?;
+ disable_raw_mode()?;
+ Ok(())
+}