use enum_derive_2018::{NextVariant, PrevVariant};
use macro_attr_2018::macro_attr;
macro_attr! {
#[derive(Debug, PartialEq, NextVariant!, PrevVariant!)]
pub enum Get {
Up,
Down,
AllAround
}
}
macro_attr! {
#[derive(NextVariant!, PrevVariant!)]
enum Nada {}
}
#[test]
fn test_next_variant() {
assert_eq!(Get::Up.next_variant(), Some(Get::Down));
assert_eq!(Get::Down.next_variant(), Some(Get::AllAround));
assert_eq!(Get::AllAround.next_variant(), None);
assert_eq!(Get::Up.prev_variant(), None);
assert_eq!(Get::Down.prev_variant(), Some(Get::Up));
assert_eq!(Get::AllAround.prev_variant(), Some(Get::Down));
}