use std::sync::OnceLock;
static VERBOSE_MODE: OnceLock<bool> = OnceLock::new();
pub fn init_verbose(verbose: bool) {
let _ = VERBOSE_MODE.set(verbose);
}
pub fn is_verbose() -> bool {
VERBOSE_MODE.get().copied().unwrap_or(false)
}
#[macro_export]
macro_rules! debug {
($($arg:tt)*) => {
if $crate::debug::is_verbose() {
eprintln!("[standby] {}", format!($($arg)*));
}
};
}
pub use debug;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_verbose_mode_disabled() {
init_verbose(false);
debug!("This should not be printed");
}
#[test]
fn test_verbose_mode_enabled() {
init_verbose(true);
debug!("This should be printed if verbose");
}
}