use core::sync::atomic::{AtomicI32, Ordering};
pub const DEBUGLEVEL: i32 = 0;
static G_DEBUGLEVEL: AtomicI32 = AtomicI32::new(DEBUGLEVEL);
#[inline]
pub fn set_debug_level(lvl: i32) {
G_DEBUGLEVEL.store(lvl, Ordering::Relaxed);
}
#[inline]
pub fn debug_level() -> i32 {
G_DEBUGLEVEL.load(Ordering::Relaxed)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn set_debug_level_roundtrips_through_debug_level() {
let prior = debug_level();
set_debug_level(3);
assert_eq!(debug_level(), 3);
set_debug_level(DEBUGLEVEL);
assert_eq!(debug_level(), DEBUGLEVEL);
set_debug_level(prior);
}
}