[][src]Trait enum_unitary::IntoEnumIterator

pub trait IntoEnumIterator where
    <Self::Iterator as Iterator>::Item == Self, 
{ type Iterator: Iterator + ExactSizeIterator + FusedIterator; 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.

When deriving this trait for an enum named Foo, the associated type Iterator is a generated type named FooEnumIterator. This generated type has the same visibility as Foo. Variants are yielded in the order they are defined in the enum. The generated iterator type is Copy.

Example

use enum_iterator::IntoEnumIterator;

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

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

Associated Types

type Iterator: Iterator + ExactSizeIterator + FusedIterator

Type of the iterator over the variants.

Loading content...

Required methods

fn into_enum_iter() -> Self::Iterator

Returns an iterator over the variants.

Loading content...

Implementors

Loading content...