use zmq::Context as ZmqContext;
use crate::{poll::ZmqPoller, FromZmqSocket, Sender, SocketBuilder};
pub fn publish(context: &ZmqContext) -> SocketBuilder<Publish> {
SocketBuilder::new(context, zmq::SocketType::PUB)
}
pub struct Publish {
inner: Sender,
}
impl FromZmqSocket<Publish> for Publish {
fn from_zmq_socket(socket: zmq::Socket) -> crate::Result<Self> {
Ok(Self {
inner: Sender::new(ZmqPoller::from_zmq_socket(socket)?),
})
}
}
impl_wrapper!(Publish, Sender, inner);
impl_wrapper_sink!(Publish, inner);