IntoEnumIterator

Trait IntoEnumIterator 

Source
pub trait IntoEnumIterator: Sized {
    type Iterator: Iterator<Item = Self> + Clone + DoubleEndedIterator + ExactSizeIterator + FusedIterator;

    // Required method
    fn iter() -> Self::Iterator;
}
Expand description

This trait designates that an Enum can be iterated over. It can be auto generated using the EnumIter derive macro.

§Example

// You need to bring the type into scope to use it!!!
use strum::{EnumIter, 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)
    }
}

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

Required Associated Types§

Required Methods§

Source

fn iter() -> Self::Iterator

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl IntoEnumIterator for Capability

Source§

type Iterator = CapabilityIter

Source§

impl IntoEnumIterator for Class

Source§

type Iterator = ClassIter

Source§

impl IntoEnumIterator for CraftClass

Source§

type Iterator = CraftClassIter

Source§

impl IntoEnumIterator for CraftMaterialType

Source§

type Iterator = CraftMaterialTypeIter

Source§

impl IntoEnumIterator for DescriptionFormat

Source§

type Iterator = DescriptionFormatIter

Source§

impl IntoEnumIterator for EffectType

Source§

type Iterator = EffectTypeIter

Source§

impl IntoEnumIterator for FootprintsSpell

Source§

type Iterator = FootprintsSpellIter

Source§

impl IntoEnumIterator for Grade

Source§

type Iterator = GradeIter

Source§

impl IntoEnumIterator for ItemLevel

Source§

type Iterator = ItemLevelIter

Source§

impl IntoEnumIterator for ItemSlot

Source§

type Iterator = ItemSlotIter

Source§

impl IntoEnumIterator for KillEaterScoreType

Source§

type Iterator = KillEaterScoreTypeIter

Source§

impl IntoEnumIterator for KillstreakTier

Source§

type Iterator = KillstreakTierIter

Source§

impl IntoEnumIterator for Killstreaker

Source§

type Iterator = KillstreakerIter

Source§

impl IntoEnumIterator for Origin

Source§

type Iterator = OriginIter

Source§

impl IntoEnumIterator for Paint

Source§

type Iterator = PaintIter

Source§

impl IntoEnumIterator for PaintSpell

Source§

type Iterator = PaintSpellIter

Source§

impl IntoEnumIterator for Quality

Source§

type Iterator = QualityIter

Source§

impl IntoEnumIterator for Sheen

Source§

type Iterator = SheenIter

Source§

impl IntoEnumIterator for Spell

Source§

type Iterator = SpellIter

Source§

impl IntoEnumIterator for StockWeapon

Source§

type Iterator = StockWeaponIter

Source§

impl IntoEnumIterator for StrangePart

Source§

type Iterator = StrangePartIter

Source§

impl IntoEnumIterator for Wear

Source§

type Iterator = WearIter