use cfg_if::cfg_if;
cfg_if! {
if #[cfg(feature = "callback")] {
use std::sync::Mutex;
pub type Callback = Box<dyn Fn(&str, &str, &str) + Send + Sync>;
static CALLBACK: Mutex<Option<Callback>> = Mutex::new(None);
pub fn set(callback: Callback) {
let mut guard = CALLBACK.lock().unwrap();
*guard = Some(callback);
}
#[doc(hidden)]
pub fn call(level: &str, target: &str, message: &str) {
if let Ok(guard) = CALLBACK.lock() {
if let Some(callback) = guard.as_ref() {
callback(level, target, message);
}
}
}
}
}