Trait logerr::LoggableError

source ·
pub trait LoggableError<T>: Sized {
    // Required method
    fn print_error<F: Fn(&str)>(self, fun: F) -> Self;

    // Provided methods
    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.

Required Methods§

source

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§

source

fn to_log(self) -> Self

source

fn to_stderr(self) -> Self

Convenienve function, calls print_error with the closure |msg| eprintln!("{}", msg).

source

fn to_stdout(self) -> Self

Convenienve function, calls print_error with the closure |msg| println!("{}", msg).

Implementations on Foreign Types§

source§

impl<T, E: Error> LoggableError<T> for Result<T, E>

source§

fn print_error<F: Fn(&str)>(self, fun: F) -> Self

Implementors§