Skip to main content

easyjs_utils/utils/
input.rs

1use std::io::{stdin, stdout, Write};
2
3pub fn input(prompt: &str, default: &str) -> String {
4    let mut s = String::new();
5    print!("{}", prompt);
6
7    let _ = stdout().flush();
8    let r = stdin().read_line(&mut s).unwrap_or(0);
9
10    if r == 0 {
11        default.to_string()
12    } else {
13        if let Some('\n') = s.chars().next_back() {
14            s.pop();
15        }
16        if let Some('\r') = s.chars().next_back() {
17            s.pop();
18        }
19
20        s
21    }
22}