@0,1,2⦊fn main() ⦉@0,1,2{
let @0,1,2⦊mut generator⦉@0,1,2 = || {
yield 1;
return "foo"
};
match @0,1,2⦊Pin::new(&mut generator).resume(()) {
GeneratorState::Yielded(1)⦉@0,1,2 => @4,6,7,8⦊{}⦉@4,6,7,8
_ => @5⦊panic!("unexpected value from resume")⦉@5,
}
match @4,6,7,8⦊Pin::new(&mut generator).resume(())⦉@4,6,7,8 {
GeneratorState::Complete(@10,11⦊"foo"⦉@10,11) => @12,13,14,15⦊{}⦉@12,13,14,15
_ => @9⦊panic!("unexpected value from resume")⦉@9,
}
let @12,13,14,15⦊mut generator⦉@12,13,14,15 = || {
yield 1;
yield 2;
yield 3;
return "foo"
};
match @12,13,14,15⦊Pin::new(&mut generator).resume(()) {
GeneratorState::Yielded(1)⦉@12,13,14,15 => @17,19,20,21⦊{}⦉@17,19,20,21
_ => @18⦊panic!("unexpected value from resume")⦉@18,
}
match @17,19,20,21⦊Pin::new(&mut generator).resume(()) {
GeneratorState::Yielded(2)⦉@17,19,20,21 => @23,25⦊{}⦉@23,25
_ => @24⦊panic!("unexpected value from resume")⦉@24,
}
}@23,25⦊‸⦉@23,25