Derive Macro Variants

Source
#[derive(Variants)]
Expand description

Generates inherent constants and an iterator method to enable iterating and indexing the enum variants.

use enum_fun::Variants;

#[derive(Debug, PartialEq, Variants)]
enum Words {
    Foo,
    Bar,
    Baz,
}

use Words::*;

assert_eq!(Words::VARIANT_COUNT, 3);
assert_eq!(Words::VARIANTS, [Foo, Bar, Baz]);
assert_eq!(Words::variants().collect::<Vec<_>>(), vec![Foo, Bar, Baz]);

The return type of the variants() method is an impl ExactSizeIterator<Item = Self>.

Only enums without fields are supported.