2 releases
0.1.1 | Dec 5, 2023 |
---|---|
0.1.0 | Feb 16, 2022 |
#812 in Data structures
92KB
2K
SLoC
Generator-rs
rust stackful generator library
[dependencies]
generator = "0.7"
Usage
use mco_gen::{done, Gn};
fn main() {
let g = Gn::new_scoped(|mut s| {
let (mut a, mut b) = (0, 1);
while b < 200 {
std::mem::swap(&mut a, &mut b);
b = a + b;
s.yield_(b);
}
done!();
});
for i in g {
println!("{}", i);
}
}
Output
1
2
3
5
8
13
21
34
55
89
144
233
Goals
- basic send/yield with message support
- generator cancel support
- yield_from support
- panic inside generator support
- stack size tune support
- scoped static type support
- basic coroutine interface support
- stable rust support
based on this basic library
- we can easily port python library based on generator into rust
- coroutine framework running on multi thread
Notices
-
This crate supports below platforms, welcome to contribute with other arch and platforms
- x86_64 Linux
- x86_64 MacOs
- x86_64 Windows
- aarch64 Linux
License
This project is licensed under either of the following, at your option:
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
Dependencies
~46–530KB