Trait logerr::LoggableError
source · [−]pub trait LoggableError<T>: Sized {
fn print_error<F: Fn(&str)>(self, fun: F) -> Self;
fn to_log(self) -> Self { ... }
fn to_stderr(self) -> Self { ... }
fn to_stdout(self) -> Self { ... }
}
Expand description
Helper trait to easily log error types.
The print_error
function takes a closure which takes a &str
and fares with it as necessary
to log the error to some usable location. For convenience, logging to stdout, stderr and
log::error!
is already implemented.
Note that the trait functions pass the error through unmodified, so they can be chained with
the usual handling of std::result::Result
types.
Developer notes
We can dump the different impls once #31844 is stabilized.
Required Methods
fn print_error<F: Fn(&str)>(self, fun: F) -> Self
fn print_error<F: Fn(&str)>(self, fun: F) -> Self
Gives a formatted error message derived from self
to the closure fun
for
printing/logging as appropriate.
Examples
ⓘ
use anyhow;
use crate::LoggableError;
let my_err: anyhow::Result<&str> = Err(anyhow::anyhow!("Test error"));
my_err
.print_error(|msg| println!("{msg}"))
.unwrap();
Provided Methods
Convenienve function, calls print_error
with the closure |msg| eprintln!("{}", msg)
.
Implementations on Foreign Types
sourceimpl<T, E: Debug> LoggableError<T> for Result<T, E>
impl<T, E: Debug> LoggableError<T> for Result<T, E>
Generic implementation for all errors that are Debug
.