tiempo-rs/src/interactive.rs

18 lines
518 B
Rust
Raw Normal View History

2021-08-25 14:30:27 -05:00
use std::io::{self, BufRead, Write};
2021-08-25 14:30:27 -05:00
use crate::io::Streams;
use crate::database::Database;
fn read_line<I: BufRead>(mut r#in: I) -> io::Result<String> {
let mut pre_n = String::new();
2021-08-25 14:30:27 -05:00
r#in.read_line(&mut pre_n)?;
Ok(pre_n)
}
2021-08-25 14:30:27 -05:00
pub fn ask<D: Database, I: BufRead, O: Write, E: Write>(streams: &mut Streams<D, I, O, E>, question: &str) -> io::Result<bool> {
write!(streams.out, "{} [y/N] ", question)?;
streams.out.flush()?;
2021-08-25 14:30:27 -05:00
Ok(read_line(&mut streams.r#in)?.to_lowercase().starts_with('y'))
}