Skip to content

Commit 496a245

Browse files
committed
misc: add generator
1 parent 6d5d93e commit 496a245

File tree

2 files changed

+41
-2
lines changed

2 files changed

+41
-2
lines changed

src/main.rs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
#![feature(generators, generator_trait)]
2+
3+
use std::ops::Generator;
4+
use std::pin::Pin;
5+
16
fn main() {
2-
println!("Hello World!");
3-
}
7+
let mut generator = || {
8+
yield 1;
9+
yield 2;
10+
yield 3;
11+
return 4;
12+
};
13+
14+
for _ in 0..4 {
15+
let c = Pin::new(&mut generator).resume(());
16+
println!("{:?}", c);
17+
}
18+
}

tests/generator.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#![feature(generators, generator_trait)]
2+
3+
use std::ops::Generator;
4+
use std::pin::Pin;
5+
6+
#[cfg(test)]
7+
mod tests {
8+
use super::*;
9+
10+
#[test]
11+
fn test_generator() {
12+
let mut generator = || {
13+
println!("2");
14+
yield;
15+
println!("4");
16+
};
17+
18+
println!("1");
19+
Pin::new(&mut generator).resume(());
20+
println!("3");
21+
Pin::new(&mut generator).resume(());
22+
println!("5");
23+
}
24+
}

0 commit comments

Comments
 (0)