Crate enum_iterator
source ·Expand description
§Overview
Tools to iterate over the values of a type.
§Examples
use enum_iterator::{all, cardinality, first, last, next, previous, reverse_all, Sequence};
#[derive(Debug, PartialEq, Sequence)]
enum Day { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }
assert_eq!(cardinality::<Day>(), 7);
assert_eq!(all::<Day>().collect::<Vec<_>>(), [
Day::Monday,
Day::Tuesday,
Day::Wednesday,
Day::Thursday,
Day::Friday,
Day::Saturday,
Day::Sunday,
]);
assert_eq!(first::<Day>(), Some(Day::Monday));
assert_eq!(last::<Day>(), Some(Day::Sunday));
assert_eq!(next(&Day::Tuesday), Some(Day::Wednesday));
assert_eq!(previous(&Day::Wednesday), Some(Day::Tuesday));
assert_eq!(reverse_all::<Day>().collect::<Vec<_>>(), [
Day::Sunday,
Day::Saturday,
Day::Friday,
Day::Thursday,
Day::Wednesday,
Day::Tuesday,
Day::Monday,
]);
use enum_iterator::{cardinality, first, last, Sequence};
#[derive(Debug, PartialEq, Sequence)]
struct Foo {
a: bool,
b: u8,
}
assert_eq!(cardinality::<Foo>(), 512);
assert_eq!(first::<Foo>(), Some(Foo { a: false, b: 0 }));
assert_eq!(last::<Foo>(), 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.
Structs§
- Iterator over the values of type
T
. - Iterator over the values of type
T
in reverse order.
Traits§
- Trait to iterate over the values of a type.
Functions§
- Returns an iterator over all values of type
T
. - Returns the cardinality (number of values) of
T
- Returns the first value of type
T
. - Returns the last value of type
T
. - Returns the next value of type
T
orNone
if this was the end. - Returns the next value of type
T
orT::first()
if this was the end. - Returns the previous value of type
T
orNone
if this was the beginning. - Returns the previous value of type
T
orT::last()
if this was the beginning. - Returns an iterator over all values of type
T
in the reverse order ofall
.
Derive Macros§
- Derives
Sequence
.