2 个版本
0.99.1 | 2020年3月8日 |
---|---|
0.99.0 | 2020年2月16日 |
#32 in #yield
28,842 每月下载量
在 genawaiter 中使用
9KB
164 行
genawaiter
此crate在稳定的Rust中实现了无栈生成器(即协程)。您可以使用 async/
await
而不是 yield
,后者可能永远不会稳定。
功能
- 支持恢复参数和完成值
- 无分配
- 无运行时依赖
- 没有编译时依赖,使用
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
这将安装一个Git钩子,在每次提交之前运行快速检查。
运行应用程序
cargo run
运行测试
cargo test
依赖项
~1.5MB
~37K SLoC