]>
Commit | Line | Data |
---|---|---|
8faf50e0 XL |
1 | #[macro_use] |
2 | extern crate failure; | |
3 | ||
4 | use failure::Fail; | |
5 | ||
6 | #[derive(Debug, Fail)] | |
7 | #[fail(display = "my error")] | |
8 | struct MyError; | |
9 | ||
10 | #[derive(Debug, Fail)] | |
11 | #[fail(display = "my wrapping error")] | |
12 | struct WrappingError(#[fail(cause)] MyError); | |
13 | ||
14 | fn bad_function() -> Result<(), WrappingError> { | |
15 | Err(WrappingError(MyError)) | |
16 | } | |
17 | ||
18 | fn main() { | |
9fa01778 XL |
19 | for cause in Fail::iter_chain(&bad_function().unwrap_err()) { |
20 | println!("{}: {}", cause.name().unwrap_or("Error"), cause); | |
8faf50e0 XL |
21 | } |
22 | } |