Overview

Tools to iterate over the values of a type.

Examples

```rust use enumiterator::{all, cardinality, first, last, next, previous, reverseall, Sequence};

[derive(Debug, PartialEq, Sequence)]

enum Day { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }

asserteq!(cardinality::(), 7); asserteq!(all::().collect::>(), [ Day::Monday, Day::Tuesday, Day::Wednesday, Day::Thursday, Day::Friday, Day::Saturday, Day::Sunday, ]); asserteq!(first::(), Some(Day::Monday)); asserteq!(last::(), Some(Day::Sunday)); asserteq!(next(&Day::Tuesday), Some(Day::Wednesday)); asserteq!(previous(&Day::Wednesday), Some(Day::Tuesday)); asserteq!(reverseall::().collect::>(), [ Day::Sunday, Day::Saturday, Day::Friday, Day::Thursday, Day::Wednesday, Day::Tuesday, Day::Monday, ]); ```

```rust use enum_iterator::{cardinality, first, last, Sequence};

[derive(Debug, PartialEq, Sequence)]

struct Foo { a: bool, b: u8, }

asserteq!(cardinality::(), 512); asserteq!(first::(), Some(Foo { a: false, b: 0 })); assert_eq!(last::(), Some(Foo { a: true, b: 255 })); ```

Rust version

This crate tracks stable Rust. Minor releases may require a newer Rust version. Patch releases must not require a newer Rust version.

Contribute

All contributions shall be licensed under the 0BSD license.