#![cfg(feature = "messages")]
use crate::{Entry, ErrorLog};
use alloc::string::String;
use log::LevelFilter;
#[macro_export]
macro_rules! log_error {
($errlog: ident, $($msg: tt)+) => {
$errlog.push_message(error_log::LevelFilter::Error, format!($($msg)+));
};
}
#[macro_export]
macro_rules! log_warn {
($errlog: ident, $($msg: tt)+) => {
$errlog.push_message(error_log::LevelFilter::Warn, format!($($msg)+));
};
}
#[macro_export]
macro_rules! log_info {
($errlog: ident, $($msg: tt)+) => {
$errlog.push_message(error_log::LevelFilter::Info, format!($($msg)+));
};
}
#[macro_export]
macro_rules! log_debug {
($errlog: ident, $($msg: tt)+) => {
$errlog.push_message(error_log::LevelFilter::Debug, format!($($msg)+));
};
}
#[macro_export]
macro_rules! log_trace {
($errlog: ident, $($msg: tt)+) => {
$errlog.push_message(error_log::LevelFilter::Trace, format!($($msg)+));
};
}
impl<T, E> ErrorLog<T, E> {
pub fn max_level(&mut self, level: LevelFilter) -> &mut Self {
self.max_level = level;
self
}
pub fn max_level_debug(&mut self, release: LevelFilter, debug: LevelFilter) -> &mut Self {
self.max_level = match cfg!(debug_assertions) {
true => debug,
false => release,
};
self
}
pub fn get_max_level(&self) -> &LevelFilter {
&self.max_level
}
pub fn push_message(&mut self, level: LevelFilter, msg: impl Into<String>) -> &mut Self {
self.entries.push(Entry::new_message(level, msg.into()));
self
}
}