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