use crate::brokers::MqttBroker;
use crate::publish::base::{IntoPublishPayload, PublishRequest, Publisher, Request};
#[derive(Clone)]
pub struct MqttPublisher {
core: Publisher,
}
impl MqttPublisher {
pub fn new(broker: MqttBroker) -> Self {
Self {
core: Publisher::new(broker),
}
}
pub fn core(&self) -> Publisher {
self.core.clone()
}
pub fn publish<P>(&self, subject: &str, payload: P) -> PublishRequest
where
P: IntoPublishPayload,
{
self.core.publish(subject, payload)
}
pub fn request<P>(&self, subject: &str, payload: P) -> Request
where
P: IntoPublishPayload,
{
self.core.request(subject, payload)
}
}