From ebf889219bbba702df0e7756c78268eb5437c30a Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Wed, 1 Feb 2023 09:46:17 -0330 Subject: refactor --- src/ui.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/ui.rs (limited to 'src/ui.rs') diff --git a/src/ui.rs b/src/ui.rs new file mode 100644 index 0000000..9133f1c --- /dev/null +++ b/src/ui.rs @@ -0,0 +1,32 @@ +use crossterm::{ + event::{DisableMouseCapture, EnableMouseCapture}, + execute, + terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, +}; +use std::io; +use tui::{ + backend::{Backend, CrosstermBackend}, + Terminal, +}; + +pub fn init_terminal() -> Result>, io::Error> { + enable_raw_mode()?; + let mut stdout = io::stdout(); + execute!(stdout, EnterAlternateScreen, EnableMouseCapture)?; + let backend = CrosstermBackend::new(stdout); + Terminal::new(backend) +} + +pub fn cleanup_terminal(mut terminal: Terminal) -> Result<(), io::Error> +where + B: Backend + io::Write, +{ + disable_raw_mode()?; + execute!( + terminal.backend_mut(), + LeaveAlternateScreen, + DisableMouseCapture, + )?; + terminal.show_cursor()?; + Ok(()) +} -- cgit v1.2.3