22 lines
502 B
Rust
22 lines
502 B
Rust
use std::io::{stdin, stdout, BufRead, Write};
|
|
|
|
use crate::Result;
|
|
|
|
/// Ask the user the given yes or no question and wait for their input.
|
|
///
|
|
/// Returns `true` for yes.
|
|
pub fn ask_yes_no(question: &str) -> Result<bool> {
|
|
let mut input = String::new();
|
|
let stdin = stdin();
|
|
|
|
print!("{question} [y/N]: ");
|
|
stdout().flush()?;
|
|
|
|
let mut handle = stdin.lock();
|
|
handle.read_line(&mut input)?;
|
|
|
|
input = input.trim().to_ascii_lowercase();
|
|
|
|
Ok(input == "y" || input == "yes")
|
|
}
|