Struct libp2p_core::muxing::SingletonMuxer  [−][src]
Implementation of StreamMuxer that allows only one substream on top of a connection,
yielding the connection itself.
Applying this muxer on a connection doesn’t read or write any data on the connection itself. Most notably, no protocol is negotiated.
Implementations
impl<TSocket> SingletonMuxer<TSocket>[src]
pub fn new(inner: TSocket, endpoint: Endpoint) -> Self[src]
Creates a new SingletonMuxer.
If endpoint is Dialer, then only one outbound substream will be permitted.
If endpoint is Listener, then only one inbound substream will be permitted.
Trait Implementations
impl<TSocket> StreamMuxer for SingletonMuxer<TSocket> where
    TSocket: AsyncRead + AsyncWrite + Unpin, [src]
TSocket: AsyncRead + AsyncWrite + Unpin,
type Substream = Substream
Type of the object that represents the raw substream where data can be read and written.
type OutboundSubstream = OutboundSubstream
Future that will be resolved when the outgoing substream is open.
type Error = Error
Error type of the muxer
fn poll_event(
    &self, 
    _: &mut Context<'_>
) -> Poll<Result<StreamMuxerEvent<Self::Substream>, Error>>[src]
&self,
_: &mut Context<'_>
) -> Poll<Result<StreamMuxerEvent<Self::Substream>, Error>>
fn open_outbound(&self) -> Self::OutboundSubstream[src]
fn poll_outbound(
    &self, 
    _: &mut Context<'_>, 
    _: &mut Self::OutboundSubstream
) -> Poll<Result<Self::Substream, Error>>[src]
&self,
_: &mut Context<'_>,
_: &mut Self::OutboundSubstream
) -> Poll<Result<Self::Substream, Error>>
fn destroy_outbound(&self, _: Self::OutboundSubstream)[src]
fn read_substream(
    &self, 
    cx: &mut Context<'_>, 
    _: &mut Self::Substream, 
    buf: &mut [u8]
) -> Poll<Result<usize, Error>>[src]
&self,
cx: &mut Context<'_>,
_: &mut Self::Substream,
buf: &mut [u8]
) -> Poll<Result<usize, Error>>
fn write_substream(
    &self, 
    cx: &mut Context<'_>, 
    _: &mut Self::Substream, 
    buf: &[u8]
) -> Poll<Result<usize, Error>>[src]
&self,
cx: &mut Context<'_>,
_: &mut Self::Substream,
buf: &[u8]
) -> Poll<Result<usize, Error>>
fn flush_substream(
    &self, 
    cx: &mut Context<'_>, 
    _: &mut Self::Substream
) -> Poll<Result<(), Error>>[src]
&self,
cx: &mut Context<'_>,
_: &mut Self::Substream
) -> Poll<Result<(), Error>>
fn shutdown_substream(
    &self, 
    cx: &mut Context<'_>, 
    _: &mut Self::Substream
) -> Poll<Result<(), Error>>[src]
&self,
cx: &mut Context<'_>,
_: &mut Self::Substream
) -> Poll<Result<(), Error>>
fn destroy_substream(&self, _: Self::Substream)[src]
fn close(&self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>[src]
fn flush_all(&self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>[src]
fn is_remote_acknowledged(&self) -> bool[src]
Auto Trait Implementations
impl<TSocket> !RefUnwindSafe for SingletonMuxer<TSocket>
impl<TSocket> Send for SingletonMuxer<TSocket> where
    TSocket: Send, 
TSocket: Send,
impl<TSocket> Sync for SingletonMuxer<TSocket> where
    TSocket: Send, 
TSocket: Send,
impl<TSocket> Unpin for SingletonMuxer<TSocket> where
    TSocket: Unpin, 
TSocket: Unpin,
impl<TSocket> UnwindSafe for SingletonMuxer<TSocket> where
    TSocket: UnwindSafe, 
TSocket: UnwindSafe,
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,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
    U: From<T>, [src]
U: From<T>,
impl<T> Same<T> for T[src]
type Output = T
Should always be Self
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.
pub 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.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<V, T> VZip<V> for T where
    V: MultiLane<T>, [src]
V: MultiLane<T>,