Skip to main content

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".

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