Crate wrapped_enum [−] [src]
wrapped_enum! - Wrap multiple types into an Enum
This is useful when returning multiple types. simply to just work on an enum of known types.
Documentation is required when using public enums
#[derive(Debug)] pub enum TestError { ErrorA, ErrorB(u8, u16), ErrorC(String), } wrapped_enum!{ #[derive(Debug)] /// Document your pub enums pub enum DocumentedEnum { /// Variants too Io(io::Error), /// Documentation is required for pub enums Test(TestError), /// Unknown error Unknown(()), } } wrapped_enum!{ #[derive(Debug, Eq, PartialEq)] /// You can't document private variants enum UndocumentedEnum { // However, there is nothing wrong with normal comments Byte(u8), // 00-FF DoubleByte(u16), // 0000-FFFF } } assert!(UndocumentedEnum::from(0u8) == UndocumentedEnum::Byte(0)); assert!(UndocumentedEnum::from(0u16) == UndocumentedEnum::DoubleByte(0));
Macros
wrapped_enum |