use anyhow::Result;
use crossterm::{
execute,
terminal::{self, EnterAlternateScreen, LeaveAlternateScreen},
};
use ratatui::{backend::CrosstermBackend, Terminal};
use std::io::{self, Stdout};
pub type Tui = Terminal<CrosstermBackend<Stdout>>;
pub fn enter() -> Result<Tui> {
terminal::enable_raw_mode()?;
execute!(io::stdout(), EnterAlternateScreen)?;
let terminal = Terminal::new(CrosstermBackend::new(io::stdout()))?;
Ok(terminal)
}
pub fn restore() -> Result<()> {
terminal::disable_raw_mode()?;
execute!(io::stdout(), LeaveAlternateScreen)?;
Ok(())
}