#[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.