Crate async_gen

Source
Expand description

This library provides a way to create asynchronous generator using the async/await feature in stable Rust.

§Installation

Add it as a dependency to your Rust project by adding the following line to your Cargo.toml file:

[dependencies]
async-gen = "0.2"

§Examples

use std::pin::pin;
use async_gen::{gen, GeneratorState};

#[tokio::main]
async fn main() {
    let g = gen! {
        yield 42;
        return "42"
    };
    let mut g = pin!(g);
    assert_eq!(g.resume().await, GeneratorState::Yielded(42));
    assert_eq!(g.resume().await, GeneratorState::Complete("42"));
}

Re-exports§

pub use futures_core;

Macros§

gen
A macro for creating generator.

Structs§

AsyncGen
Represent an asyncronus generator. It implementations AsyncGenerator trait.
AsyncIter
An async iterator over the values yielded by an underlying generator.

Enums§

GeneratorState
The result of a generator resumption.

Traits§

AsyncGenerator
Generators, also commonly referred to as coroutines.

Functions§

gen
Creates a new generator, which implements the AsyncGenerator trait.