| Crates.io | rust_generator |
| lib.rs | rust_generator |
| version | 0.1.2 |
| created_at | 2025-04-14 20:30:29.597265+00 |
| updated_at | 2025-04-15 12:33:24.515832+00 |
| description | A simple generator base on async rust! No experimental needed! |
| homepage | |
| repository | https://github.com/Toby-Shi-cloud/rust_generator |
| max_upload_size | |
| id | 1633348 |
| size | 12,527 |
A simple generator base on async rust! No experimental needed!
Code use rust_generator:
#[rust_generator::generator]
fn fib() -> impl Iterator<Item = usize> {
let mut n1 = 1;
let mut n2 = 1;
let mut n3 = 2;
// note: there is no need to import yield_,
// because yield_ is just act like an attribute and
// will be replaced when rust_generator::generator is expanded.
yield_!(n1);
// `xxx.await` is also an alternative.
n2.await;
loop {
yield_!(n3);
n1 = n2;
n2 = n3;
n3 = n1 + n2;
}
}
fn main() {
for x in fib().take(10) {
println!("{x}");
}
}
Code use experimental rust:
fn fib() -> impl Iterator<Item = usize> {
gen {
let mut n1 = 1;
let mut n2 = 1;
let mut n3 = 2;
yield n1;
yield n2;
loop {
yield n3;
n1 = n2;
n2 = n3;
n3 = n1 + n2;
}
}
}