postvan 0.0.2

A minimalistic implementation of pub/sub messaging
Documentation
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);
}