use crate::error::Result;
use crate::message::Message;
use crate::transport;
pub struct Publisher<M: Message> {
topic: String,
inner: Box<dyn transport::Publisher<M>>,
}
impl<M: Message> Publisher<M> {
pub(crate) fn new(topic: String, inner: Box<dyn transport::Publisher<M>>) -> Self {
Self { topic, inner }
}
pub fn topic(&self) -> &str {
&self.topic
}
pub fn publish(&self, message: &M) -> Result<()> {
self.inner.publish(message)
}
}