Trait fixt::prelude::IntoEnumIterator[][src]

pub trait IntoEnumIterator {
    type Iterator: Iterator;
    fn iter() -> Self::Iterator;
}
Expand description

This trait designates that an Enum can be iterated over. It can be auto generated using strum_macros on your behalf.

Example

// 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,
}

// Iterate over the items in an enum and perform some function on them.
fn generic_iterator<E, F>(pred: F)
where
    E: IntoEnumIterator,
    F: Fn(E),
{
    for e in E::iter() {
        pred(e)
    }
}

fn main() {
    generic_iterator::<Color, _>(|color| println!("{:?}", color));
}

Associated Types

Required methods

Implementors