Crate gen_iter [] [src]

gen_iter - create generators to use as iterators

GenIter converts a generator into an iterator over the yielded type of the generator. the return type of the generator , if any, is ignored.

#![feature(generators)]
#![feature(conservative_impl_trait)]

extern crate gen_iter;
use gen_iter::GenIter;

fn fibonacci() -> impl Iterator<Item = u64> {
    GenIter(|| {
        let mut a = 0;
        let mut b = 1;

        loop {
            let c = a + b;
            a = b;
            b = c;
             
            yield a;
        }
    })
}

fn main() {
    for elem in fibonacci().map(|x| 2 * x).take(10) {
        println!("{}", elem);
    }
}

Macros

gen_iter

macro to simplify iterator - via - generator construction

Structs

GenIter

a iterator that holds an internal generator representing the iteration state