pub trait Iterable: Sized {
    type Iterator: Iterator<Item = Self>;

    // Required method
    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::{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§

source

type Iterator: Iterator<Item = Self>

Required Methods§

source

fn iter() -> Self::Iterator

Implementations on Foreign Types§

source§

impl IntoEnumIterator for PrimaryKey

source§

impl IntoEnumIterator for Column

source§

impl IntoEnumIterator for Relation

Implementors§

source§

impl IntoEnumIterator for leetcode_tui_rs::entities::question::Column

source§

impl IntoEnumIterator for leetcode_tui_rs::entities::question::PrimaryKey

source§

impl IntoEnumIterator for leetcode_tui_rs::entities::question::Relation

source§

impl IntoEnumIterator for leetcode_tui_rs::entities::question_topic_tag::Column

source§

impl IntoEnumIterator for leetcode_tui_rs::entities::question_topic_tag::PrimaryKey

source§

impl IntoEnumIterator for leetcode_tui_rs::entities::question_topic_tag::Relation

source§

impl IntoEnumIterator for leetcode_tui_rs::entities::topic_tag::Column

source§

impl IntoEnumIterator for leetcode_tui_rs::entities::topic_tag::PrimaryKey

source§

impl IntoEnumIterator for leetcode_tui_rs::entities::topic_tag::Relation

source§

impl IntoEnumIterator for Question

source§

impl IntoEnumIterator for QuestionTopicTag

source§

impl IntoEnumIterator for TopicTag