use std::thread;
use crossbeam_channel::{bounded, Sender};
fn fibonacci(sender: Sender<u64>) {
let (mut x, mut y) = (0, 1);
while sender.send(x).is_ok() {
let tmp = x;
x = y;
y += tmp;
}
}
fn main() {
let (s, r) = bounded(0);
thread::spawn(|| fibonacci(s));
for num in r.iter().take(20) {
println!("{}", num);
}
}