[][src]Trait enum_unitary::IntoEnumIterator

pub trait IntoEnumIterator where
    <Self::Iterator as Iterator>::Item == Self, 
{ type Iterator: Copy + Iterator + ExactSizeIterator + FusedIterator; const VARIANT_COUNT: usize; fn into_enum_iter() -> Self::Iterator; }

Trait to iterate over the variants of a field-less enum.

Field-less (a.k.a. C-like) enums are enums whose variants don't have additional data.

This trait is meant to be derived.

Example

use enum_iterator::IntoEnumIterator;

#[derive(Clone, IntoEnumIterator, PartialEq)]
enum Direction {North, South, West, East}

fn main() {
    assert_eq!(Direction::VARIANT_COUNT, 4);
    assert!(Direction::into_enum_iter().eq([Direction::North,
        Direction::South, Direction::West, Direction::East].iter()
        .cloned()));
}

Associated Types

type Iterator: Copy + Iterator + ExactSizeIterator + FusedIterator

Type of the iterator over the variants.

Loading content...

Associated Constants

const VARIANT_COUNT: usize

Number of variants.

Loading content...

Required methods

fn into_enum_iter() -> Self::Iterator

Returns an iterator over the variants.

Variants are yielded in the order they are defined in the enum.

Loading content...

Implementors

Loading content...