[−][src]Macro chainerror::cherr
Creates a new ChainError<T>
Examples
Create a new ChainErrorFooError
must implement Display
and Debug
.
enum FooError { Bar, Baz(&'static str), } // impl ::std::fmt::Display for FooError fn do_some_stuff() -> bool { false } fn func() -> ChainResult<(), FooError> { if ! do_some_stuff() { Err(cherr!(FooError::Baz("Error")))?; } Ok(()) }
Additionally an error cause can be added.
fn do_some_stuff() -> Result<(), Box<Error>> { Err(io::Error::from(io::ErrorKind::NotFound))?; Ok(()) } fn func() -> ChainResult<(), FooError> { do_some_stuff().map_err( |e| cherr!(e, FooError::Baz("Error")) )?; Ok(()) }