use std::io::{self, stdout, Stdout}; use ratatui::{ backend::CrosstermBackend, crossterm::{ cursor::SetCursorStyle, terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, ExecutableCommand }, Terminal, }; pub type Tui = Terminal>; pub fn init() -> io::Result { 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)?; stdout().execute(SetCursorStyle::DefaultUserShape)?; disable_raw_mode()?; Ok(()) }