Vendor things
This commit is contained in:
parent
5deceec006
commit
977e3c17e5
19434 changed files with 10682014 additions and 0 deletions
33
third-party/vendor/generator/examples/send.rs
vendored
Normal file
33
third-party/vendor/generator/examples/send.rs
vendored
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
#![allow(deprecated)]
|
||||
|
||||
use generator::{yield_, Gn};
|
||||
use std::mem;
|
||||
|
||||
fn sum(a: u32) -> u32 {
|
||||
let mut sum = a;
|
||||
let mut recv: u32;
|
||||
while sum < 200 {
|
||||
// println!("sum={} ", sum);
|
||||
recv = yield_(sum).unwrap();
|
||||
// println!("recv={}", recv);
|
||||
sum += recv;
|
||||
}
|
||||
sum
|
||||
}
|
||||
|
||||
fn main() {
|
||||
// we specify the send type is u32
|
||||
let mut s = Gn::<u32>::new(|| sum(0));
|
||||
// first start the generator
|
||||
assert_eq!(s.raw_send(None).unwrap(), 0);
|
||||
let mut cur = 1;
|
||||
let mut last = 1;
|
||||
|
||||
while !s.is_done() {
|
||||
// println!("send={}", last);
|
||||
mem::swap(&mut cur, &mut last);
|
||||
cur = s.send(cur); // s += cur
|
||||
// println!("cur={} last={}", cur, last);
|
||||
println!("{cur}");
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue