use postvan::{Letterbox, Postoffice};
#[derive(Debug, Hash, Eq, PartialEq)]
enum Topic {
Engine,
}
impl postvan::Topic for Topic {}
#[derive(Clone, Debug)]
enum Message {
Ok(bool),
}
impl postvan::Message for Message {
type Topic = Topic;
fn topics(&self) -> &'static [Self::Topic] {
&[Topic::Engine]
}
}
struct MyStruct {
pub lb: Letterbox<String, Message>,
}
#[tokio::main]
async fn main() {
let mut post_office = Postoffice::new();
let mut my_object = MyStruct {
lb: Letterbox::new(),
};
post_office.register(&mut my_object.lb, &"test".to_string());
let _ = my_object.lb.subscribe(Topic::Engine);
let _ = my_object.lb.post(Message::Ok(true));
post_office.tick();
println!("{:?}", my_object.lb.recv_all());
}