rustc/vendor/failure/examples/simple.rs
2019-05-19 01:32:59 -07:00

23 lines
473 B
Rust

#[macro_use]
extern crate failure;
use failure::Fail;
#[derive(Debug, Fail)]
#[fail(display = "my error")]
struct MyError;
#[derive(Debug, Fail)]
#[fail(display = "my wrapping error")]
struct WrappingError(#[fail(cause)] MyError);
fn bad_function() -> Result<(), WrappingError> {
Err(WrappingError(MyError))
}
fn main() {
for cause in Fail::iter_chain(&bad_function().unwrap_err()) {
println!("{}: {}", cause.name().unwrap_or("Error"), cause);
}
}