Trait async_zmq_types::InnerSocket
source · pub trait InnerSocket<T>: Sizedwhere
T: IntoInnerSocket + From<Self>,{
type Request: Future<Item = T>;
type Response: Future<Item = (Multipart, T)>;
type Stream: Stream<Item = Multipart> + IntoSocket<T, Self>;
type Sink: Sink<SinkItem = Multipart> + IntoSocket<T, Self>;
type SinkStream: Stream<Item = Multipart> + Sink<SinkItem = Multipart> + IntoSocket<T, Self>;
fn send(self, multipart: Multipart) -> Self::Request;
fn recv(self) -> Self::Response;
fn stream(self) -> Self::Stream;
fn sink(self, buffer_size: usize) -> Self::Sink;
fn sink_stream(self, buffer_size: usize) -> Self::SinkStream;
}
Expand description
Define all actions possible on a socket
This should be generic enough to implement over any executor. On Tokio, this might consist of a Socket with an EventedFd, on Futures, it might just be a Socket.
Required Associated Types
sourcetype Response: Future<Item = (Multipart, T)>
type Response: Future<Item = (Multipart, T)>
The future that receives a multipart from a ZMQ socket
sourcetype Stream: Stream<Item = Multipart> + IntoSocket<T, Self>
type Stream: Stream<Item = Multipart> + IntoSocket<T, Self>
A Stream of multiparts received from a ZMQ socket
sourcetype Sink: Sink<SinkItem = Multipart> + IntoSocket<T, Self>
type Sink: Sink<SinkItem = Multipart> + IntoSocket<T, Self>
A Sink that sends multiparts to a ZMQ socket
sourcetype SinkStream: Stream<Item = Multipart> + Sink<SinkItem = Multipart> + IntoSocket<T, Self>
type SinkStream: Stream<Item = Multipart> + Sink<SinkItem = Multipart> + IntoSocket<T, Self>
A Sink and Stream that sends and receives multiparts from a ZMQ socket