use std::{convert::Infallible, fmt}; use super::Error; use crate::{debug_error, error}; #[inline] pub fn else_log(error: E) -> Result where T: Default, Error: From, { Ok(default_log(error)) } #[inline] pub fn else_debug_log(error: E) -> Result where T: Default, Error: From, { Ok(default_debug_log(error)) } #[inline] pub fn default_log(error: E) -> T where T: Default, Error: From, { let error = Error::from(error); inspect_log(&error); T::default() } #[inline] pub fn default_debug_log(error: E) -> T where T: Default, Error: From, { let error = Error::from(error); inspect_debug_log(&error); T::default() } #[inline] pub fn map_log(error: E) -> Error where Error: From, { let error = Error::from(error); inspect_log(&error); error } #[inline] pub fn map_debug_log(error: E) -> Error where Error: From, { let error = Error::from(error); inspect_debug_log(&error); error } #[inline] pub fn inspect_log(error: &E) { error!("{error}"); } #[inline] pub fn inspect_debug_log(error: &E) { debug_error!("{error:?}"); }