//! # Logging macros #[macro_export] macro_rules! info { ($ctx:expr, $msg:expr) => { info!($ctx, $msg,) }; ($ctx:expr, $msg:expr, $($args:expr),* $(,)?) => {{ let formatted = format!($msg, $($args),*); let full = format!("{file}:{line}: {msg}", file = file!(), line = line!(), msg = &formatted); emit_event!($ctx, $crate::EventType::Info(full)); }}; } #[macro_export] macro_rules! warn { ($ctx:expr, $msg:expr) => { warn!($ctx, $msg,) }; ($ctx:expr, $msg:expr, $($args:expr),* $(,)?) => {{ let formatted = format!($msg, $($args),*); let full = format!("{file}:{line}: {msg}", file = file!(), line = line!(), msg = &formatted); emit_event!($ctx, $crate::EventType::Warning(full)); }}; } #[macro_export] macro_rules! error { ($ctx:expr, $msg:expr) => { error!($ctx, $msg,) }; ($ctx:expr, $msg:expr, $($args:expr),* $(,)?) => {{ let formatted = format!($msg, $($args),*); emit_event!($ctx, $crate::EventType::Error(formatted)); }}; } #[macro_export] macro_rules! error_network { ($ctx:expr, $msg:expr) => { error_network!($ctx, $msg,) }; ($ctx:expr, $msg:expr, $($args:expr),* $(,)?) => {{ let formatted = format!($msg, $($args),*); emit_event!($ctx, $crate::EventType::ErrorNetwork(formatted)); }}; } #[macro_export] macro_rules! emit_event { ($ctx:expr, $event:expr) => { $ctx.emit_event($event); }; }