#[macro_export]
macro_rules! printf {
() => {{}};
($($arg:tt)*) => {{
use ::std::io::Write as _;
let __s = format!($($arg)*);
::std::io::stdout().write_all(__s.as_bytes())
.map_err(|error| $crate::err::err2no(&error))
}};
}
#[macro_export]
macro_rules! printfln {
() => {{
use ::std::io::Write as _;
::std::io::stdout().write_all(b"\n")
.map_err(|error| $crate::err::err2no(&error))
}};
($($arg:tt)*) => {{
use ::std::io::Write as _;
let mut __s = format!($($arg)*);
__s.push('\n');
::std::io::stdout().write_all(__s.as_bytes())
.map_err(|error| $crate::err::err2no(&error))
}};
}
#[doc(hidden)]
#[macro_export]
macro_rules! log_impl {
($level:expr, $($key:literal : $value:expr),+) => {
if $crate::log_enabled!($level) {
let timestamp = $crate::log::now();
let mut map = $crate::log::LogMap::new();
$(
if let Ok(value) = $crate::log::LogValue::try_serialize(&$value) {
let _ = map.try_insert($key, value);
}
)+
if !map.is_empty() {
$crate::log::log($level, timestamp, map);
}
}
}
}
#[macro_export]
macro_rules! emerg {
($($key:literal : $value:expr),+) => {
$crate::log_impl!($crate::syslog::LogLevel::Emergent, $($key : $value),+)
}
}
#[macro_export]
macro_rules! alert {
($($key:literal : $value:expr),+) => {
$crate::log_impl!($crate::syslog::LogLevel::Alert, $($key : $value),+)
}
}
#[macro_export]
macro_rules! crit {
($($key:literal : $value:expr),+) => {
$crate::log_impl!($crate::syslog::LogLevel::Crit, $($key : $value),+)
}
}
#[macro_export]
macro_rules! error {
($($key:literal : $value:expr),+) => {
$crate::log_impl!($crate::syslog::LogLevel::Err, $($key : $value),+)
}
}
#[macro_export]
macro_rules! warn {
($($key:literal : $value:expr),+) => {
$crate::log_impl!($crate::syslog::LogLevel::Warn, $($key : $value),+)
}
}
#[macro_export]
macro_rules! notice {
($($key:literal : $value:expr),+) => {
$crate::log_impl!($crate::syslog::LogLevel::Notice, $($key : $value),+)
}
}
#[macro_export]
macro_rules! info {
($($key:literal : $value:expr),+) => {
$crate::log_impl!($crate::syslog::LogLevel::Info, $($key : $value),+)
}
}
#[macro_export]
macro_rules! debug {
($($key:literal : $value:expr),+) => {
$crate::log_impl!($crate::syslog::LogLevel::Debug, $($key : $value),+)
}
}