[−][src]Struct stream_multiplexer::Multiplexer
Manages incoming streams of data and the enqueueing of outgoing data.
Outgoing streams have their own buffer of messages and do not affect other streams. Incoming streams have their messages routed into channels that have their own backpressure.
Implementations
impl<Item, ReadSt, WriteSi, OutSt> Multiplexer<Item, ReadSt, WriteSi, OutSt, IncrementIdGen> where
ReadSt: Stream + Unpin,
WriteSi: Sink<Item> + Unpin,
[src]
ReadSt: Stream + Unpin,
WriteSi: Sink<Item> + Unpin,
pub fn new(
sender_buffer_size: usize,
outgoing: OutSt,
incoming_packet_sinks: Vec<Sender<IncomingPacket<ReadSt::Item>>>
) -> Self
[src]
sender_buffer_size: usize,
outgoing: OutSt,
incoming_packet_sinks: Vec<Sender<IncomingPacket<ReadSt::Item>>>
) -> Self
Calls with_id_gen
, giving it an IncrementIdGen as well as the rest of the arguments.
impl<Item, ReadSt, WriteSi, OutSt, Id> Multiplexer<Item, ReadSt, WriteSi, OutSt, Id> where
ReadSt: Stream + Unpin,
WriteSi: Sink<Item> + Unpin,
[src]
ReadSt: Stream + Unpin,
WriteSi: Sink<Item> + Unpin,
pub fn with_id_gen(
sender_buffer_size: usize,
id_gen: Id,
outgoing: OutSt,
incoming_packet_sinks: Vec<Sender<IncomingPacket<ReadSt::Item>>>
) -> Self
[src]
sender_buffer_size: usize,
id_gen: Id,
outgoing: OutSt,
incoming_packet_sinks: Vec<Sender<IncomingPacket<ReadSt::Item>>>
) -> Self
Initializes with a stream that provides the outgoing packets which will be enqueued to the corresponding streams, and a vector of sinks that represent different "channels" or "categories" of data.
impl<Item, ReadSt, WriteSi, OutSt, Id> Multiplexer<Item, ReadSt, WriteSi, OutSt, Id> where
Id: IdGen,
OutSt: Stream<Item = OutgoingPacket<Item>>,
ReadSt: Stream,
WriteSi: Sink<Item>,
WriteSi::Error: Debug,
Id: Send + Unpin + 'static,
Item: Clone + Send + Sync + 'static + Debug,
OutSt: Send + Unpin + 'static,
ReadSt: Send + Unpin + 'static,
ReadSt::Item: Send + Debug,
WriteSi: Send + Unpin + 'static,
[src]
Id: IdGen,
OutSt: Stream<Item = OutgoingPacket<Item>>,
ReadSt: Stream,
WriteSi: Sink<Item>,
WriteSi::Error: Debug,
Id: Send + Unpin + 'static,
Item: Clone + Send + Sync + 'static + Debug,
OutSt: Send + Unpin + 'static,
ReadSt: Send + Unpin + 'static,
ReadSt::Item: Send + Debug,
WriteSi: Send + Unpin + 'static,
pub async fn run<V, U>(
__arg0: Self,
__arg1: V,
__arg2: U
) -> JoinHandle<IoResult<()>> where
V: Stream<Item = IoResult<IncomingStream<ReadSt, WriteSi>>>,
V: Unpin + Send + 'static,
U: Stream<Item = ControlMessage> + Send + Unpin + 'static,
[src]
__arg0: Self,
__arg1: V,
__arg2: U
) -> JoinHandle<IoResult<()>> where
V: Stream<Item = IoResult<IncomingStream<ReadSt, WriteSi>>>,
V: Unpin + Send + 'static,
U: Stream<Item = ControlMessage> + Send + Unpin + 'static,
Start the multiplexer. Giving it a stream of incoming connection halves and a stream for ControlMessages.
Trait Implementations
impl<Item, ReadSt, WriteSi, OutSt, Id> Debug for Multiplexer<Item, ReadSt, WriteSi, OutSt, Id> where
ReadSt: Stream,
[src]
ReadSt: Stream,
Auto Trait Implementations
impl<Item, ReadSt, WriteSi, OutSt, Id = IncrementIdGen> !RefUnwindSafe for Multiplexer<Item, ReadSt, WriteSi, OutSt, Id>
impl<Item, ReadSt, WriteSi, OutSt, Id> Send for Multiplexer<Item, ReadSt, WriteSi, OutSt, Id> where
Id: Send,
Item: Send,
OutSt: Send,
ReadSt: Send,
WriteSi: Send,
<ReadSt as Stream>::Item: Send,
Id: Send,
Item: Send,
OutSt: Send,
ReadSt: Send,
WriteSi: Send,
<ReadSt as Stream>::Item: Send,
impl<Item, ReadSt, WriteSi, OutSt, Id> Sync for Multiplexer<Item, ReadSt, WriteSi, OutSt, Id> where
Id: Sync,
Item: Send + Sync,
OutSt: Sync,
ReadSt: Send + Sync,
WriteSi: Send + Sync,
<ReadSt as Stream>::Item: Send,
Id: Sync,
Item: Send + Sync,
OutSt: Sync,
ReadSt: Send + Sync,
WriteSi: Send + Sync,
<ReadSt as Stream>::Item: Send,
impl<Item, ReadSt, WriteSi, OutSt, Id> Unpin for Multiplexer<Item, ReadSt, WriteSi, OutSt, Id> where
Id: Unpin,
OutSt: Unpin,
Id: Unpin,
OutSt: Unpin,
impl<Item, ReadSt, WriteSi, OutSt, Id = IncrementIdGen> !UnwindSafe for Multiplexer<Item, ReadSt, WriteSi, OutSt, Id>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
fn instrument(self, span: Span) -> Instrumented<Self>
[src]
fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> WithSubscriber for T
[src]
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
[src]
S: Into<Dispatch>,