easy_from 0.0.0

Easy macro for deriving From implementations (useful for composing Enums)
Documentation
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)));
}