3 个版本 (重大变更)

0.3.0 2024年1月11日
0.2.0 2024年1月9日
0.1.0 2023年10月20日

#2320Rust 模式

每月 29 次下载

MIT 许可证

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);
    }
}

无运行时依赖