postvan 0.0.1

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 {
    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);
}