3 个版本 (重大变更)
0.3.0 | 2024年1月11日 |
---|---|
0.2.0 | 2024年1月9日 |
0.1.0 | 2023年10月20日 |
#2320 在 Rust 模式
每月 29 次下载
5KB
82 行
Gamo
创建用户定义类型的类似 Range 结构体,以便轻松使用 for 循环。 Gamo 在 Esperanto 中意为范围。
这是什么?
目前 Rust 没有稳定 API 来创建用户定义类型 Range<T>
。此 crate 提供了一个类似 Range
的结构体 Gamo
,可以轻松与 for 循环一起使用。
使用方法
[dependencies]
gamo = "0.2.0"
在 Gamo<T>
中使用的类型 T
必须实现 TryToNext
特性。
示例
use gamo::{Gamo, TryToNext};
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)]
struct TimeSlot(usize);
impl TryToNext for TimeSlot {
fn try_to_next(&self) -> Option<Self> {
Some(Self(self.0 + 1))
}
}
fn main() {
for t in Gamo::new(TimeSlot(0), TimeSlot(5)) {
println!("{:?}", t);
}
}