summaryrefslogtreecommitdiff
path: root/src/term.rs
blob: 07edf9003bdd99084661f2d8a8f08eae3431e698 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use std::io::{self, BufRead, StdoutLock, Write};

use crossterm::{
    cursor::MoveTo,
    terminal::{Clear, ClearType},
    QueueableCommand,
};

pub fn clear_terminal(stdout: &mut StdoutLock) -> io::Result<()> {
    stdout
        .queue(MoveTo(0, 0))?
        .queue(Clear(ClearType::All))?
        .queue(Clear(ClearType::Purge))
        .map(|_| ())
}

pub fn press_enter_prompt(stdout: &mut StdoutLock) -> io::Result<()> {
    stdout.flush()?;
    io::stdin().lock().read_until(b'\n', &mut Vec::new())?;
    stdout.write_all(b"\n")?;
    Ok(())
}