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 }));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.
Returns the previous value of type T.
Returns an iterator over all values of type T in the reverse order of all.
Derive Macros
Derives Sequence.