pub struct AsyncReadWriteChain<R: AsyncRead, RW: AsyncRead + AsyncWrite> { /* private fields */ }
Expand description
A wrapper for a pair of structs, R and RW.
Implements tokio::io::AsyncRead
. Reads from R
until it is empty, then reads from RW
.
Implements tokio::io::AsyncWrite
. Passes all writes through to RW
.
This is like the struct returned by
tokio::io::AsyncReadExt::chain
that also passes through writes.
Implementations§
Source§impl<R: AsyncRead, RW: AsyncRead + AsyncWrite> AsyncReadWriteChain<R, RW>
impl<R: AsyncRead, RW: AsyncRead + AsyncWrite> AsyncReadWriteChain<R, RW>
Sourcepub fn new(reader: R, read_writer: RW) -> AsyncReadWriteChain<R, RW>
pub fn new(reader: R, read_writer: RW) -> AsyncReadWriteChain<R, RW>
See AsyncReadWriteChain
.
Trait Implementations§
Source§impl<R: AsyncRead + Unpin, RW: AsyncRead + AsyncWrite + Unpin> AsyncRead for AsyncReadWriteChain<R, RW>
impl<R: AsyncRead + Unpin, RW: AsyncRead + AsyncWrite + Unpin> AsyncRead for AsyncReadWriteChain<R, RW>
Source§impl<R: AsyncRead + Unpin, RW: AsyncRead + AsyncWrite + Unpin> AsyncWrite for AsyncReadWriteChain<R, RW>
impl<R: AsyncRead + Unpin, RW: AsyncRead + AsyncWrite + Unpin> AsyncWrite for AsyncReadWriteChain<R, RW>
Source§fn poll_write(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
buf: &[u8],
) -> Poll<Result<usize, Error>>
fn poll_write( self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &[u8], ) -> Poll<Result<usize, Error>>
Attempt to write bytes from
buf
into the object. Read moreSource§fn poll_flush(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
) -> Poll<Result<(), Error>>
fn poll_flush( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<(), Error>>
Attempts to flush the object, ensuring that any buffered data reach
their destination. Read more
Source§fn poll_shutdown(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
) -> Poll<Result<(), Error>>
fn poll_shutdown( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<(), Error>>
Initiates or attempts to shut down this writer, returning success when
the I/O connection has completely shut down. Read more
Source§fn poll_write_vectored(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
bufs: &[IoSlice<'_>],
) -> Poll<Result<usize, Error>>
fn poll_write_vectored( self: Pin<&mut Self>, cx: &mut Context<'_>, bufs: &[IoSlice<'_>], ) -> Poll<Result<usize, Error>>
Like
poll_write
, except that it writes from a slice of buffers. Read moreSource§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
Determines if this writer has an efficient
poll_write_vectored
implementation. Read moreAuto Trait Implementations§
impl<R, RW> Freeze for AsyncReadWriteChain<R, RW>
impl<R, RW> RefUnwindSafe for AsyncReadWriteChain<R, RW>where
RW: RefUnwindSafe,
R: RefUnwindSafe,
impl<R, RW> Send for AsyncReadWriteChain<R, RW>
impl<R, RW> Sync for AsyncReadWriteChain<R, RW>
impl<R, RW> Unpin for AsyncReadWriteChain<R, RW>
impl<R, RW> UnwindSafe for AsyncReadWriteChain<R, RW>where
RW: UnwindSafe,
R: UnwindSafe,
Blanket Implementations§
Source§impl<RW> AsyncReadWriteExt for RW
impl<RW> AsyncReadWriteExt for RW
Source§fn chain_after<R: AsyncRead>(
&mut self,
reader: R,
) -> AsyncReadWriteChain<R, &mut Self>
fn chain_after<R: AsyncRead>( &mut self, reader: R, ) -> AsyncReadWriteChain<R, &mut Self>
Source§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