denyhosts/clamav/libclamav_rust/.cargo/vendor/crossbeam-channel/examples/fibonacci.rs

26 lines
554 B
Rust
Raw Normal View History

2023-01-14 18:28:39 +08:00
//! An asynchronous fibonacci sequence generator.
use std::thread;
use crossbeam_channel::{bounded, Sender};
// Sends the Fibonacci sequence into the channel until it becomes disconnected.
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));
// Print the first 20 Fibonacci numbers.
for num in r.iter().take(20) {
println!("{}", num);
}
}