use postvan::{Letterbox, Message, Postoffice};
#[derive(Clone, Debug)]
enum MyMessage {
Ok,
UhOh,
}
impl Message for MyMessage {}
struct Actor {
pub lb: Letterbox<MyMessage>,
}
impl Actor {
fn new() -> Self {
Self {
lb: Letterbox::new(32),
}
}
fn beat_it(&mut self) {
let _ = self.lb.post(MyMessage::Ok);
let _ = self.lb.post(MyMessage::UhOh);
}
}
#[tokio::main]
async fn main() {
let mut po = Postoffice::new();
let mut a = Actor::new();
po.register(&mut a.lb);
let _ = a.lb.subscribe(MyMessage::Ok);
a.beat_it();
while po.tick().is_some() {}
let msgs = a.lb.check();
println!("{:?}", msgs);
}