generator 0.2.0

Generator Library in Rust
docs.rs failed to build generator-0.2.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: generator-0.8.1

Generator-rs

rust generator library

use the dev version on master

[dependencies.generator]
git = "https://github.com/Xudong-Huang/generator-rs.git"

Usage

#[macro_use]
extern crate generator;

fn main() {

    let g = generator::Gn::<()>::new(|| {
        let (mut a, mut b) = (0, 1);
        while b < 200 {
            std::mem::swap(&mut a, &mut b);
            b = a + b;
            _yield_!(b);
        }
        a + b
    });

    for i in g {
        println!("{}", i);
    }
}

Output

1
2
3
5
8
13
21
34
55
89
144
233
377

Goals

  • basic send/yield support
  • generator cancel support
  • yield_from support
  • panic inside genertor support
  • Basic single threaded support
  • compact stack support
  • Multithreaded support

based on this basic library

  • we can easily port python libary based on generator into rust. the libaray has more powerfull tools than python that can make the generator more fast, safe and multi thread support.
  • schedule framework running with multi-thread.
  • basic library for Asynchronous I/O

Notices

  • This crate supports platforms in

    • x86_64 linux