[−][src]Struct libp2p_core::muxing::SingletonMuxer
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,
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
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.
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<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,