| Crates.io | gamo |
| lib.rs | gamo |
| version | 0.3.0 |
| created_at | 2023-10-20 13:49:15.054398+00 |
| updated_at | 2024-01-11 23:50:18.502593+00 |
| description | A Range like struct for user defined types |
| homepage | |
| repository | https://github.com/lucidfrontier45/gamo |
| max_upload_size | |
| id | 1009010 |
| size | 6,937 |
Create a Range like struct of user define types for easy for loop. Gamo means range in Esperanto.
Currently Rust does not have a stable API to create Range<T> of user defined type T. This crate provides a Range like struct Gamo that can be easily used with for-loops.
[dependencies]
gamo = "0.2.0"
The type T used in Gamo<T> must implement TryToNext trait.
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);
}
}