yield_from/yield_from.rs
1#![allow(deprecated)]
2
3use generator::*;
4
5fn xrange(start: u32, end: u32) -> u32 {
6 for i in start..end {
7 yield_with(i);
8 }
9 done!();
10}
11
12fn main() {
13 let g1 = Gn::new(|| xrange(0, 10));
14 let g2 = Gn::new(|| xrange(10, 20));
15
16 let g = Gn::new_scoped(|mut s| {
17 s.yield_from(g1);
18 s.yield_from(g2);
19 done!();
20 });
21
22 g.fold(0, |sum, x| {
23 println!("i={}, sum={}", x, sum + x);
24 sum + x
25 });
26}