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.