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