use log::{debug, error, info, trace, warn};
pub trait ResultLogger {
fn trace(self) -> Self;
fn debug(self) -> Self;
fn info(self) -> Self;
fn warn(self) -> Self;
fn error(self) -> Self;
}
impl<T, E: std::fmt::Display> ResultLogger for Result<T, E> {
fn trace(self) -> Self {
self.inspect_err(|e| trace!("{}", e))
}
fn debug(self) -> Self {
self.inspect_err(|e| debug!("{}", e))
}
fn info(self) -> Self {
self.inspect_err(|e| info!("{}", e))
}
fn warn(self) -> Self {
self.inspect_err(|e| warn!("{}", e))
}
fn error(self) -> Self {
self.inspect_err(|e| error!("{}", e))
}
}
#[cfg(test)]
mod tests {}