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}