-
Notifications
You must be signed in to change notification settings - Fork 154
Derive EnumIter
Peter Glotfelty edited this page Aug 18, 2019
·
1 revision
Iterate over the variants of an Enum. Any additional data on your variants will be set to Default::default()
.
The macro implements strum::IntoEnumIter
on your enum and creates a new type called YourEnumIter
that is the iterator object.
You cannot derive EnumIter
on any type with a lifetime bound (<'a>
) because the iterator would surely
create unbounded lifetimes.
// You need to bring the type into scope to use it!!!
use strum::IntoEnumIterator;
#[derive(EnumIter,Debug)]
enum Color {
Red,
Green { range:usize },
Blue(usize),
Yellow,
}
// It's simple to iterate over the variants of an enum.
fn debug_colors() {
for color in Color::iter() {
println!("My favorite color is {:?}", color);
}
}
fn main() {
debug_colors();
}