use futures_util::StreamExt;
use watchable::{Watchable, Watcher};
#[tokio::main]
async fn main() {
let watchable = Watchable::default();
let watcher = watchable.watch();
let watching_task = tokio::task::spawn(watching_task(watcher));
for i in 1_u32..=1000 {
watchable.replace(i);
}
drop(watchable);
watching_task.await.unwrap();
}
async fn watching_task(watcher: Watcher<u32>) {
let mut stream = watcher.into_stream();
while let Some(value) = stream.next().await {
println!("Read value: {value}");
}
}
#[test]
fn runs() {
main()
}