use {
futures_lite::future,
std::{thread, time::Duration},
};
fn main() {
let (tx, mut rx) = async_observe::channel(0);
thread::spawn(move || {
for n in 1..10 {
thread::sleep(Duration::from_secs(1));
if tx.send(n).is_err() {
break;
}
}
});
let n = rx.observe(|n| *n);
println!("{n}");
future::block_on(async {
while let Ok(n) = rx.recv().await {
println!("{n}");
}
});
}