24个版本 (13个稳定版)
2.1.0 | 2024年5月1日 |
---|---|
2.0.0 | 2024年2月25日 |
1.5.0 | 2024年1月15日 |
1.4.1 | 2023年5月4日 |
0.2.0 | 2018年7月2日 |
在 Rust模式 中排名 33
每月下载量 648,662
在 1,275 个 包(150个直接使用)中使用
34KB
628 行
概述
遍历类型值的工具。
示例
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版本
此包跟踪稳定版Rust。次要版本可能需要更高版本的Rust。补丁版本不得需要更高版本的Rust。
贡献
所有贡献均须根据 0BSD 许可证 许可。
依赖项
~270–720KB
~17K SLoC