Guest User

Untitled

a guest
May 23rd, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.53 KB | None | 0 0
  1. #![feature(generator_trait, generators)]
  2. use std::ops::{Generator, GeneratorState};
  3.  
  4. pub fn main() {
  5. let mut g = move || {
  6. 'a: while {yield return 'a: while {break 'a; true} {}; true} {yield}
  7. };
  8.  
  9. let mut n = 0;
  10. unsafe {
  11. loop {
  12. n += 1;
  13. if n == 10 { break }
  14. match g.resume() {
  15. GeneratorState::Yielded(y) => println!("YIELD {:?}", y),
  16. GeneratorState::Complete(r) => { println!("RETURNED {:?}", r); break},
  17. }
  18. }
  19. }
  20. }
Add Comment
Please, Sign In to add comment