use std::sync::atomic::{AtomicBool, Ordering};
static QUIET_MODE: AtomicBool = AtomicBool::new(false);
pub fn set_quiet(quiet: bool) {
QUIET_MODE.store(quiet, Ordering::SeqCst);
}
pub fn is_quiet() -> bool {
QUIET_MODE.load(Ordering::SeqCst)
}
pub fn print_info(args: std::fmt::Arguments<'_>) {
if !is_quiet() {
eprintln!("{}", args);
}
}
#[allow(dead_code)] pub fn print_warn(args: std::fmt::Arguments<'_>) {
if !is_quiet() {
eprintln!("{}", args);
}
}
#[macro_export]
macro_rules! info_print {
($($arg:tt)*) => {
$crate::output::print_info(format_args!($($arg)*));
};
}
#[macro_export]
macro_rules! warn_print {
($($arg:tt)*) => {
$crate::output::print_warn(format_args!($($arg)*));
};
}