2 个版本

0.99.1 2020 年 3 月 9 日
0.99.0 2020 年 2 月 16 日

2081异步

Download history 17490/week @ 2024-03-14 17902/week @ 2024-03-21 15704/week @ 2024-03-28 19146/week @ 2024-04-04 17524/week @ 2024-04-11 20810/week @ 2024-04-18 19076/week @ 2024-04-25 15634/week @ 2024-05-02 19628/week @ 2024-05-09 21023/week @ 2024-05-16 16737/week @ 2024-05-23 17771/week @ 2024-05-30 16091/week @ 2024-06-06 17822/week @ 2024-06-13 15466/week @ 2024-06-20 14122/week @ 2024-06-27

每月下载 67,591
84 个 Crates 中使用(通过 genawaiter

MIT/Apache

4KB

genawaiter

crate-badge docs-badge ci-badge

此 crate 在稳定的 Rust 中实现无栈生成器(也称为协程)。您可以使用 yield 代替,它 很快将不会稳定,而是使用 async/await,这是今天稳定的。

特性

  • 支持恢复参数和完成值
  • 无分配
  • 无运行时依赖
    • 也没有编译时依赖,使用 default-features = []
  • 基于标准语言结构构建,这意味着没有任何平台特定的诡计

示例

let odd_numbers_less_than_ten = gen!({
    let mut n = 1;
    while n < 10 {
        yield_!(n); // Suspend a function at any point with a value.
        n += 2;
    }
});

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

结果

1
3
5
7
9

更多信息请参阅文档。

开发

安装先决条件

安装 pre-commit 钩子

pre-commit install

这将在每次提交之前运行一个快速检查。

运行应用程序

cargo run

运行测试

cargo test

无运行时依赖

特性