Struct describe_err::Described[][src]

pub struct Described<E: Error + 'static> { /* fields omitted */ }
Expand description

An error wrapper with description.

This struct can hold every error, with the only restriction that this error must be 'static to support downcasting through source.

When converting this wrapper to string with Display, it will render colon-separated pair of description and original error:

use describe_err::{Described, describing};
fn fmt<E: std::error::Error + 'static>(err: &Described<E>) -> String {
    format!("{}: {}", err.description(), err.original())
}
 
fn main() {
    // Let's create a simple error with auto-generated description...
    let res: Result<u32, _> = describing!("Not a number".parse());
    // ...then unwrap it...
    let err = res.unwrap_err();
    // and see that the formatting is indeed the same:
    assert_eq!(fmt(&err), format!("{}", err));
}

Implementations

Directly retrieves an error description.

Directly retrieves an original error.

This method is different from source, since it is generic and is known to return exactly the wrapped type, not a boxed trait object. This way you won’t need any downcasting.

Trait Implementations

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

The lower-level source of this error, if any. Read more

🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

👎 Deprecated since 1.42.0:

use the Display impl or to_string()

👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.