use easy_from::EasyFrom;
#[derive(Eq, PartialEq, Debug)]
enum IOError {
Oops,
}
#[derive(Eq, PartialEq, Debug)]
enum NetworkError {
Oops,
}
#[derive(EasyFrom, Eq, PartialEq, Debug)]
enum OurError {
IO(#[from] IOError),
Network(#[from] NetworkError),
}
#[test]
fn works() {
fn a() -> Result<(), IOError> {
Err(IOError::Oops)
}
fn b() -> Result<(), NetworkError> {
Err(NetworkError::Oops)
}
fn c() -> Result<(), OurError> {
a()?;
b()?;
Ok(())
}
let d = c();
assert_eq!(d, Err(OurError::IO(IOError::Oops)));
}