get_yield/
get_yield.rs

1#![allow(deprecated)]
2use generator::{get_yield, yield_with, Gn};
3
4fn sum(a: u32) -> u32 {
5    let mut sum = a;
6    let mut recv: u32;
7    while sum < 200 {
8        recv = get_yield().unwrap();
9        yield_with(sum);
10        sum += recv;
11    }
12
13    sum
14}
15
16fn main() {
17    // we specify the send type is u32
18    let mut s = Gn::<u32>::new(|| sum(1));
19    let mut i = 1u32;
20    while !s.is_done() {
21        i = s.send(i);
22        println!("{i}");
23    }
24}