[][src]Struct async_smux::Mux

pub struct Mux<T> { /* fields omitted */ }

A multiplexer/demultiplexer for AsyncRead / AsyncWrite streams.

Mux can accept new MuxStream from the remote peer, or connect new MuxStream to the remote peer. Note that if the remote peer is trying to connect to the local Mux, while there is no task accepting the new MuxStream on the local side, the Mux and all related MuxStreams might get pended.

Implementations

impl<T: AsyncRead + AsyncWrite + Send + Unpin + 'static> Mux<T>[src]

pub async fn stream_count<'_>(&'_ self) -> usize[src]

Gets the number of currently established MuxStreams.

pub async fn clean<'_>(&'_ self) -> Result<()>[src]

Cleans all dropped MuxStreams immediately.

pub async fn accept<'_>(&'_ self) -> Result<MuxStream<T>>[src]

Accepts a new MuxStream from the remote peer.

pub async fn connect<'_>(&'_ self) -> Result<MuxStream<T>>[src]

Connects a new MuxStream to the remote peer.

pub fn new(inner: T, config: MuxConfig) -> Self[src]

Creates a new Mux

Panic

Panics if the config is not valid. Call MuxConfig::check() to make sure the config is valid.

Trait Implementations

impl<T: Clone> Clone for Mux<T>[src]

Auto Trait Implementations

impl<T> !RefUnwindSafe for Mux<T>

impl<T> Send for Mux<T> where
    T: Send

impl<T> Sync for Mux<T> where
    T: Send

impl<T> Unpin for Mux<T>

impl<T> !UnwindSafe for Mux<T>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,