12 个版本 (7 个稳定)
1.1.3 | 2024 年 1 月 27 日 |
---|---|
1.1.1 | 2023 年 6 月 29 日 |
1.1.0 | 2023 年 3 月 26 日 |
1.0.2 | 2022 年 12 月 10 日 |
0.2.3 | 2019 年 11 月 22 日 |
2637 在 Rust 模式 中
每月 3,501 次下载
用于 32 个crate (5 个直接使用)
22KB
172 行
iter-enum
#[derive(Iterator, DoubleEndedIterator, ExactSizeIterator, FusedIterator, Extend)] for 枚举。
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
iter-enum = "1"
编译器支持:需要 rustc 1.56+
示例
use iter_enum::*;
#[derive(Iterator, DoubleEndedIterator, ExactSizeIterator, FusedIterator, Extend)]
enum Either<A, B> {
A(A),
B(B),
}
fn foo(x: i32) -> impl Iterator<Item = i32> {
if x > 0 {
Either::A(x..=0)
} else {
Either::B(Some(x).into_iter())
}
}
请参阅 auto_enums crate 了解如何自动化此类模式。
支持的特质
Iterator
- 示例 | 生成代码DoubleEndedIterator
- 示例 | 生成代码ExactSizeIterator
- 示例 | 生成代码FusedIterator
- 示例 | 生成代码Extend
- 示例 | 生成代码ParallelIterator
(需要"rayon"
功能) - 示例 | 生成的代码IndexedParallelIterator
(需要"rayon"
功能) - 示例 | 生成的代码ParallelExtend
(需要"rayon"
功能) - 示例 | 生成的代码
可选功能
rayon
- 启用以使用
#[derive(ParallelIterator, IndexedParallelIterator, ParallelExtend)]
.
- 启用以使用
相关项目
- auto_enums: 一个允许通过自动生成的枚举实现多个返回类型的库。
- derive_utils: 用于轻松编写枚举的 derive 宏的进程宏助手。
- io-enum: 为枚举提供 #[derive(Read, Write, Seek, BufRead)]。
许可证
在您的选择下,根据 Apache License, Version 2.0 或 MIT 许可证进行许可。
除非您明确声明,否则您有意提交以包含在作品中的任何贡献,根据 Apache-2.0 许可证定义,将双重许可如上所述,无需任何额外的条款或条件。
依赖项
~320–780KB
~18K SLoC