use enum_derive_2018::EnumFromStr;
use macro_attr_2018::macro_attr;
macro_attr! {
#[derive(Debug, PartialEq, EnumFromStr!)]
pub enum Get {
Up,
Down,
AllAround
}
}
macro_attr! {
#[derive(Debug, PartialEq, EnumFromStr!)]
pub enum Degenerate {}
}
#[test]
fn test_next_variant() {
use enum_derive_2018::ParseEnumError;
assert_eq!("Up".parse(), Ok(Get::Up));
assert_eq!("Down".parse(), Ok(Get::Down));
assert_eq!("AllAround".parse(), Ok(Get::AllAround));
assert_eq!("Edgy".parse::<Degenerate>(), Err(ParseEnumError));
assert_eq!("Singularity".parse::<Degenerate>(), Err(ParseEnumError));
}