1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use std::fmt::Debug;
use crate::message::Message;

pub mod routed_destination;
pub mod kinds;
pub mod message_condition;

pub trait MessageDestination: Debug {
    fn send(&self, message: &Message) -> Result<(), Box<dyn std::error::Error>>;
}

#[typetag::serde(tag = "type")]
pub trait SerializableDestination: MessageDestination {
    fn as_message_destination(&self) -> &dyn MessageDestination;
}