use postage::{mpsc, prelude::Stream, sink::Sink, stream::TryRecvError};
#[tokio::main]
async fn main() {
let mut rx = create_stream().await;
if let Some(message) = rx.recv().await {
println!("We got a message: {}", message);
}
while let Some(message) = rx.recv().await {
println!("We got a message: {}", message);
}
match rx.try_recv() {
Ok(message) => println!("We got a message: {}", message),
Err(TryRecvError::Pending) => {
}
Err(TryRecvError::Closed) => {
}
}
}
async fn create_stream() -> impl Stream<Item = String> {
let (mut tx, rx) = mpsc::channel(8);
tx.send("Hello!".to_string()).await.ok();
tx.send("World!".to_string()).await.ok();
rx
}