drop for terminalcore

This commit is contained in:
filipriec
2025-03-21 14:17:02 +01:00
parent 8dfec29202
commit af0d71c5cf

View File

@@ -37,14 +37,17 @@ impl TerminalCore {
}
pub fn cleanup(&mut self) -> Result<(), Box<dyn std::error::Error>> {
let mut stdout = stdout();
execute!(stdout, Show)?;
execute!(stdout, SetCursorStyle::DefaultUserShape)?;
execute!(stdout, LeaveAlternateScreen)?;
disable_raw_mode()?;
stdout.flush()?;
let backend = self.terminal.backend_mut();
execute!(
stdout,
backend,
Show,
SetCursorStyle::DefaultUserShape,
LeaveAlternateScreen
)?;
disable_raw_mode()?;
backend.flush()?;
execute!(
backend,
crossterm::terminal::Clear(crossterm::terminal::ClearType::All),
MoveTo(0, 0)
)?;
@@ -63,3 +66,9 @@ impl TerminalCore {
Ok(())
}
}
impl Drop for TerminalCore {
fn drop(&mut self) {
let _ = self.cleanup();
}
}