pub struct MaybeTlsStream<S>(/* private fields */);Available on crate feature
tls only.Expand description
A futures-based stream that can be either plain TCP or TLS-encrypted.
Implementations§
Source§impl<S> MaybeTlsStream<S>
impl<S> MaybeTlsStream<S>
Sourcepub fn new_plain(stream: S) -> MaybeTlsStream<S>
pub fn new_plain(stream: S) -> MaybeTlsStream<S>
Create an unencrypted stream.
Sourcepub fn new_tls(stream: TlsStream<S>) -> MaybeTlsStream<S>
pub fn new_tls(stream: TlsStream<S>) -> MaybeTlsStream<S>
Create a TLS-encrypted stream.
Source§impl<S> MaybeTlsStream<S>where
S: AsyncRead + AsyncWrite + Unpin,
impl<S> MaybeTlsStream<S>where
S: AsyncRead + AsyncWrite + Unpin,
Sourcepub fn negotiated_alpn(&self) -> Option<Cow<'_, [u8]>>
pub fn negotiated_alpn(&self) -> Option<Cow<'_, [u8]>>
Returns the negotiated ALPN protocol.
Trait Implementations§
Source§impl<S> AsyncRead for MaybeTlsStream<S>where
S: AsyncRead + AsyncWrite + Unpin,
impl<S> AsyncRead for MaybeTlsStream<S>where
S: AsyncRead + AsyncWrite + Unpin,
Source§impl<S> AsyncWrite for MaybeTlsStream<S>where
S: AsyncRead + AsyncWrite + Unpin,
impl<S> AsyncWrite for MaybeTlsStream<S>where
S: AsyncRead + AsyncWrite + Unpin,
Source§fn poll_write(
self: Pin<&mut MaybeTlsStream<S>>,
cx: &mut Context<'_>,
buf: &[u8],
) -> Poll<Result<usize, Error>>
fn poll_write( self: Pin<&mut MaybeTlsStream<S>>, cx: &mut Context<'_>, buf: &[u8], ) -> Poll<Result<usize, Error>>
Attempt to write bytes from
buf into the object. Read moreSource§fn poll_write_vectored(
self: Pin<&mut MaybeTlsStream<S>>,
cx: &mut Context<'_>,
bufs: &[IoSlice<'_>],
) -> Poll<Result<usize, Error>>
fn poll_write_vectored( self: Pin<&mut MaybeTlsStream<S>>, cx: &mut Context<'_>, bufs: &[IoSlice<'_>], ) -> Poll<Result<usize, Error>>
Attempt to write bytes from
bufs into the object using vectored
IO operations. Read moreSource§impl<S> Debug for MaybeTlsStream<S>where
S: Debug,
impl<S> Debug for MaybeTlsStream<S>where
S: Debug,
Source§impl<S> IntoMaybeTlsStream<S> for MaybeTlsStream<PollFd<S>>where
S: AsFd,
impl<S> IntoMaybeTlsStream<S> for MaybeTlsStream<PollFd<S>>where
S: AsFd,
Source§fn into_maybe_tls_stream(self) -> Result<MaybeTlsStream<PollFd<S>>, Error>
fn into_maybe_tls_stream(self) -> Result<MaybeTlsStream<PollFd<S>>, Error>
Convert this stream into a
MaybeTlsStream.Auto Trait Implementations§
impl<S> !RefUnwindSafe for MaybeTlsStream<S>
impl<S> !Send for MaybeTlsStream<S>
impl<S> !Sync for MaybeTlsStream<S>
impl<S> !UnwindSafe for MaybeTlsStream<S>
impl<S> Freeze for MaybeTlsStream<S>where
MaybeTlsStreamInner<S>: Freeze,
impl<S> Unpin for MaybeTlsStream<S>where
MaybeTlsStreamInner<S>: Unpin,
impl<S> UnsafeUnpin for MaybeTlsStream<S>where
MaybeTlsStreamInner<S>: UnsafeUnpin,
Blanket Implementations§
§impl<R> AsyncReadExt for Rwhere
R: AsyncRead + ?Sized,
impl<R> AsyncReadExt for Rwhere
R: AsyncRead + ?Sized,
§fn chain<R>(self, next: R) -> Chain<Self, R>where
Self: Sized,
R: AsyncRead,
fn chain<R>(self, next: R) -> Chain<Self, R>where
Self: Sized,
R: AsyncRead,
Creates an adaptor which will chain this stream with another. Read more
§fn read<'a>(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self> ⓘwhere
Self: Unpin,
fn read<'a>(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self> ⓘwhere
Self: Unpin,
Tries to read some bytes directly into the given
buf in asynchronous
manner, returning a future type. Read more§fn read_vectored<'a>(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>],
) -> ReadVectored<'a, Self> ⓘwhere
Self: Unpin,
fn read_vectored<'a>(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>],
) -> ReadVectored<'a, Self> ⓘwhere
Self: Unpin,
Creates a future which will read from the
AsyncRead into bufs using vectored
IO operations. Read more§fn read_exact<'a>(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self> ⓘwhere
Self: Unpin,
fn read_exact<'a>(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self> ⓘwhere
Self: Unpin,
Creates a future which will read exactly enough bytes to fill
buf,
returning an error if end of file (EOF) is hit sooner. Read more§fn read_to_end<'a>(&'a mut self, buf: &'a mut Vec<u8>) -> ReadToEnd<'a, Self> ⓘwhere
Self: Unpin,
fn read_to_end<'a>(&'a mut self, buf: &'a mut Vec<u8>) -> ReadToEnd<'a, Self> ⓘwhere
Self: Unpin,
Creates a future which will read all the bytes from this
AsyncRead. Read more§fn read_to_string<'a>(
&'a mut self,
buf: &'a mut String,
) -> ReadToString<'a, Self> ⓘwhere
Self: Unpin,
fn read_to_string<'a>(
&'a mut self,
buf: &'a mut String,
) -> ReadToString<'a, Self> ⓘwhere
Self: Unpin,
Creates a future which will read all the bytes from this
AsyncRead. Read more§impl<W> AsyncWriteExt for Wwhere
W: AsyncWrite + ?Sized,
impl<W> AsyncWriteExt for Wwhere
W: AsyncWrite + ?Sized,
§fn flush(&mut self) -> Flush<'_, Self> ⓘwhere
Self: Unpin,
fn flush(&mut self) -> Flush<'_, Self> ⓘwhere
Self: Unpin,
Creates a future which will entirely flush this
AsyncWrite. Read more§fn close(&mut self) -> Close<'_, Self> ⓘwhere
Self: Unpin,
fn close(&mut self) -> Close<'_, Self> ⓘwhere
Self: Unpin,
Creates a future which will entirely close this
AsyncWrite.§fn write<'a>(&'a mut self, buf: &'a [u8]) -> Write<'a, Self> ⓘwhere
Self: Unpin,
fn write<'a>(&'a mut self, buf: &'a [u8]) -> Write<'a, Self> ⓘwhere
Self: Unpin,
Creates a future which will write bytes from
buf into the object. Read more§fn write_vectored<'a>(
&'a mut self,
bufs: &'a [IoSlice<'a>],
) -> WriteVectored<'a, Self> ⓘwhere
Self: Unpin,
fn write_vectored<'a>(
&'a mut self,
bufs: &'a [IoSlice<'a>],
) -> WriteVectored<'a, Self> ⓘwhere
Self: Unpin,
Creates a future which will write bytes from
bufs into the object using vectored
IO operations. Read moreSource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more