use async_std::prelude::*;
use async_std::{io, task};
use simple_message_channels::{Message, Reader};
fn main() {
task::block_on(async move {
match recv().await {
Err(e) => eprintln!("Error: {:?}", e),
Ok(()) => eprintln!("Ok."),
}
});
}
async fn recv() -> Result<(), io::Error> {
let stdin = io::stdin().lock().await;
let mut reader = Reader::new(stdin);
while let Some(msg) = reader.next().await {
let msg = msg?;
print_msg(&msg);
}
Ok(())
}
fn print_msg(msg: &Message) {
let text = String::from_utf8(msg.message.clone()).unwrap();
eprintln!("recv: ch {} typ {}: {}", msg.channel, msg.typ, text);
}