1use std::io;
2use std::io::Write;
3
4pub mod migrations;
5pub mod re;
6
7#[macro_export]
8macro_rules! log_sql {
9 ($query:expr, $do_log:expr) => {{
10 let log_sql_q: String = $query;
11 if $do_log {
12 println!("{}", log_sql_q);
13 }
14 log_sql_q
15 }};
16}
17
18pub(crate) fn question(question: &str) -> bool {
19 loop {
20 print!("{question} [yN] ");
21 io::stdout().flush().expect("Flushing stdout should work!");
22 let mut input = String::new();
23 match io::stdin().read_line(&mut input) {
24 Ok(_) => {
25 input = input.trim().to_string();
26 if input.trim().is_empty() || input == "N" {
27 return false;
28 } else if input == "y" {
29 return true;
30 }
31 }
32 Err(error) => {
33 println!("error: {error}");
34 return false;
35 }
36 }
37 }
38}