genawaiter

![crate-badge] ![docs-badge] ![ci-badge]

This crate implements stackless generators (aka coroutines) in stable Rust. Instead of using yield, which won't be stabilized anytime soon, you use async/await, which is stable today.

Features:

Example:

```rust let generator = Gen::new(|co| async move { let mut n = 1; while n < 10 { // Suspend a function at any point with a value. co.yield_(n).await; n += 2; } });

// Generators can be used as ordinary iterators. for num in generator { println!("{}", num); } ```

Result:

text 1 3 5 7 9

See the docs for more.