1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use std::io::{self, BufRead as _, Write as _};

pub fn prompt(message: &str) -> Result<String, io::Error> {
    let stdout = io::stdout();
    let mut stdout = stdout.lock();
    stdout.write_all(message.as_bytes())?;
    stdout.flush()?;

    let stdin = io::stdin();
    let mut stdin = stdin.lock();

    let mut line = String::new();
    stdin.read_line(&mut line)?;
    Ok(line.trim().to_string())
}