simple_generators

Crates.iosimple_generators
lib.rssimple_generators
version0.1.3
sourcesrc
created_at2023-01-23 23:08:57.917599
updated_at2023-01-23 23:08:57.917599
descriptionmaking work with generators simpler
homepage
repository
max_upload_size
id766297
size5,680
Vovchik (vova616)

documentation

README

simple_generators

A library that contains a macro for a simpler generator->iterator creation

Usage

Use latest nightly

cargo add simple_generators

or:

[dependencies]
simple_generators = { version="0.1.3" }

example:

#![feature(generators, generator_trait)]

use simple_generators::*;

fn main() {
    println!("{}", test_macro(10).sum::<u64>());

    let foo = Foo {
        vec: vec![10, 20, 30],
    };

    for e in foo.test_macro() {
        println!("{}", e);
    }
}

#[generator]
fn test_macro(n: u64) -> impl Iterator<Item = u64> {
    let mut num = 0;
    while num < n {
        yield num;
        num += 1;
    }
}

struct Foo {
    vec: Vec<u64>,
}

impl Foo {
    #[generator]
    fn test_macro<'a>(&'a self) -> impl Iterator<Item = u64> + 'a {
        for item in &self.vec {
            yield *item;
        }
    }
}
Commit count: 0

cargo fmt