[][src]Trait hodgepodge::IntoEnumIterator

pub trait IntoEnumIterator where
    <Self::Iterator as Iterator>::Item == Self, 
{ type Iterator: Iterator; fn iter() -> Self::Iterator; }

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

Loading content...

Required methods

fn iter() -> Self::Iterator

Loading content...

Implementors

impl IntoEnumIterator for CMYK[src]

type Iterator = CMYKIter

impl IntoEnumIterator for CSS[src]

type Iterator = CSSIter

impl IntoEnumIterator for RGB[src]

type Iterator = RGBIter

impl IntoEnumIterator for ROYGBIV[src]

type Iterator = ROYGBIVIter

impl IntoEnumIterator for Rank[src]

type Iterator = RankIter

impl IntoEnumIterator for Suit[src]

type Iterator = SuitIter

impl IntoEnumIterator for Continent[src]

impl IntoEnumIterator for Country[src]

type Iterator = CountryIter

impl IntoEnumIterator for Direction[src]

impl IntoEnumIterator for EU[src]

type Iterator = EUIter

impl IntoEnumIterator for States[src]

type Iterator = StatesIter

impl IntoEnumIterator for BetterThanRust[src]

impl IntoEnumIterator for Medal[src]

type Iterator = MedalIter

impl IntoEnumIterator for Ordinal[src]

type Iterator = OrdinalIter

impl IntoEnumIterator for Element[src]

type Iterator = ElementIter

impl IntoEnumIterator for Planet[src]

type Iterator = PlanetIter

impl IntoEnumIterator for PrefixLarge[src]

impl IntoEnumIterator for PrefixSmall[src]

impl IntoEnumIterator for TaxonomicRank[src]

impl IntoEnumIterator for Unit[src]

type Iterator = UnitIter

impl IntoEnumIterator for Day[src]

type Iterator = DayIter

impl IntoEnumIterator for Month[src]

type Iterator = MonthIter

Loading content...