Files
chkr/src/terminal_guard.rs
Lukas Wölfer a8c22061f0 style: linting
2026-01-24 09:22:51 +01:00

21 lines
657 B
Rust

//! A guard that restores the terminal state on drop.
use crossterm::cursor::Show;
use crossterm::execute;
use crossterm::terminal::{LeaveAlternateScreen, disable_raw_mode};
/// A guard that ensures the terminal is restored to its original state
/// when dropped.
#[derive(Default, Debug)]
pub struct TerminalModeGuard;
impl TerminalModeGuard {}
impl Drop for TerminalModeGuard {
#[allow(clippy::let_underscore_must_use, reason = "We want to ignore errors during cleanup.")]
fn drop(&mut self) {
let _ = disable_raw_mode();
let mut stdout = std::io::stdout();
let _ = execute!(stdout, LeaveAlternateScreen, Show);
}
}