pub struct WriteHalf<'a>(/* private fields */);net only.Expand description
Borrowed write half of a TcpStream, created by split.
Note that in the AsyncWrite implementation of this type, poll_shutdown will
shut down the TCP stream in the write direction.
Writing to an WriteHalf is usually done using the convenience methods found
on the AsyncWriteExt trait.
Implementations§
Source§impl WriteHalf<'_>
impl WriteHalf<'_>
Sourcepub async fn ready(&self, interest: Interest) -> Result<Ready>
Available on non-loom only.
pub async fn ready(&self, interest: Interest) -> Result<Ready>
loom only.Waits for any of the requested ready states.
This function is usually paired with try_write(). It can be used instead
of writable() to check the returned ready set for Ready::WRITABLE
and Ready::WRITE_CLOSED events.
The function may complete without the socket being ready. This is a
false-positive and attempting an operation will return with
io::ErrorKind::WouldBlock. The function can also return with an empty
Ready set, so you should always check the returned value and possibly
wait again if the requested states are not set.
This function is equivalent to TcpStream::ready.
§Cancel safety
This method is cancel safe. Once a readiness event occurs, the method
will continue to return immediately until the readiness event is
consumed by an attempt to read or write that fails with WouldBlock or
Poll::Pending.
Sourcepub async fn writable(&self) -> Result<()>
Available on non-loom only.
pub async fn writable(&self) -> Result<()>
loom only.Waits for the socket to become writable.
This function is equivalent to ready(Interest::WRITABLE) and is usually
paired with try_write().
§Cancel safety
This method is cancel safe. Once a readiness event occurs, the method
will continue to return immediately until the readiness event is
consumed by an attempt to write that fails with WouldBlock or
Poll::Pending.
Sourcepub fn try_write(&self, buf: &[u8]) -> Result<usize>
Available on non-loom only.
pub fn try_write(&self, buf: &[u8]) -> Result<usize>
loom only.Tries to write a buffer to the stream, returning how many bytes were written.
The function will attempt to write the entire contents of buf, but
only part of the buffer may be written.
This function is usually paired with writable().
§Return
If data is successfully written, Ok(n) is returned, where n is the
number of bytes written. If the stream is not ready to write data,
Err(io::ErrorKind::WouldBlock) is returned.
Sourcepub fn try_write_vectored(&self, bufs: &[IoSlice<'_>]) -> Result<usize>
Available on non-loom only.
pub fn try_write_vectored(&self, bufs: &[IoSlice<'_>]) -> Result<usize>
loom only.Tries to write several buffers to the stream, returning how many bytes were written.
Data is written from each buffer in order, with the final buffer read
from possible being only partially consumed. This method behaves
equivalently to a single call to try_write() with concatenated
buffers.
This function is usually paired with writable().
§Return
If data is successfully written, Ok(n) is returned, where n is the
number of bytes written. If the stream is not ready to write data,
Err(io::ErrorKind::WouldBlock) is returned.
Sourcepub fn peer_addr(&self) -> Result<SocketAddr>
Available on non-loom only.
pub fn peer_addr(&self) -> Result<SocketAddr>
loom only.Returns the remote address that this stream is connected to.
Sourcepub fn local_addr(&self) -> Result<SocketAddr>
Available on non-loom only.
pub fn local_addr(&self) -> Result<SocketAddr>
loom only.Returns the local address that this stream is bound to.
Trait Implementations§
Source§impl AsyncWrite for WriteHalf<'_>
Available on non-loom only.
impl AsyncWrite for WriteHalf<'_>
loom only.Source§fn poll_write(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
buf: &[u8],
) -> Poll<Result<usize>>
fn poll_write( self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &[u8], ) -> Poll<Result<usize>>
buf into the object. Read moreSource§fn poll_write_vectored(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
bufs: &[IoSlice<'_>],
) -> Poll<Result<usize>>
fn poll_write_vectored( self: Pin<&mut Self>, cx: &mut Context<'_>, bufs: &[IoSlice<'_>], ) -> Poll<Result<usize>>
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
poll_write_vectored
implementation. Read moreAuto Trait Implementations§
impl<'a> Freeze for WriteHalf<'a>
loom only.impl<'a> RefUnwindSafe for WriteHalf<'a>
loom only.impl<'a> Send for WriteHalf<'a>
loom only.impl<'a> Sync for WriteHalf<'a>
loom only.impl<'a> Unpin for WriteHalf<'a>
loom only.impl<'a> UnsafeUnpin for WriteHalf<'a>
loom only.impl<'a> UnwindSafe for WriteHalf<'a>
loom only.Blanket Implementations§
Source§impl<W> AsyncWriteExt for Wwhere
W: AsyncWrite + ?Sized,
Available on non-loom only.
impl<W> AsyncWriteExt for Wwhere
W: AsyncWrite + ?Sized,
loom only.Source§fn write<'a>(&'a mut self, src: &'a [u8]) -> Write<'a, Self>where
Self: Unpin,
fn write<'a>(&'a mut self, src: &'a [u8]) -> Write<'a, Self>where
Self: Unpin,
io-util only.Source§fn write_vectored<'a, 'b>(
&'a mut self,
bufs: &'a [IoSlice<'b>],
) -> WriteVectored<'a, 'b, Self>where
Self: Unpin,
fn write_vectored<'a, 'b>(
&'a mut self,
bufs: &'a [IoSlice<'b>],
) -> WriteVectored<'a, 'b, Self>where
Self: Unpin,
io-util only.Source§fn write_buf<'a, B>(&'a mut self, src: &'a mut B) -> WriteBuf<'a, Self, B>
fn write_buf<'a, B>(&'a mut self, src: &'a mut B) -> WriteBuf<'a, Self, B>
io-util only.Source§fn write_all_buf<'a, B>(
&'a mut self,
src: &'a mut B,
) -> WriteAllBuf<'a, Self, B>
fn write_all_buf<'a, B>( &'a mut self, src: &'a mut B, ) -> WriteAllBuf<'a, Self, B>
io-util only.Source§fn write_all<'a>(&'a mut self, src: &'a [u8]) -> WriteAll<'a, Self>where
Self: Unpin,
fn write_all<'a>(&'a mut self, src: &'a [u8]) -> WriteAll<'a, Self>where
Self: Unpin,
io-util only.Source§fn write_u8(&mut self, n: u8) -> WriteU8<&mut Self>where
Self: Unpin,
fn write_u8(&mut self, n: u8) -> WriteU8<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_i8(&mut self, n: i8) -> WriteI8<&mut Self>where
Self: Unpin,
fn write_i8(&mut self, n: i8) -> WriteI8<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_u16(&mut self, n: u16) -> WriteU16<&mut Self>where
Self: Unpin,
fn write_u16(&mut self, n: u16) -> WriteU16<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_i16(&mut self, n: i16) -> WriteI16<&mut Self>where
Self: Unpin,
fn write_i16(&mut self, n: i16) -> WriteI16<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_u32(&mut self, n: u32) -> WriteU32<&mut Self>where
Self: Unpin,
fn write_u32(&mut self, n: u32) -> WriteU32<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_i32(&mut self, n: i32) -> WriteI32<&mut Self>where
Self: Unpin,
fn write_i32(&mut self, n: i32) -> WriteI32<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_u64(&mut self, n: u64) -> WriteU64<&mut Self>where
Self: Unpin,
fn write_u64(&mut self, n: u64) -> WriteU64<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_i64(&mut self, n: i64) -> WriteI64<&mut Self>where
Self: Unpin,
fn write_i64(&mut self, n: i64) -> WriteI64<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_u128(&mut self, n: u128) -> WriteU128<&mut Self>where
Self: Unpin,
fn write_u128(&mut self, n: u128) -> WriteU128<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_i128(&mut self, n: i128) -> WriteI128<&mut Self>where
Self: Unpin,
fn write_i128(&mut self, n: i128) -> WriteI128<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_f32(&mut self, n: f32) -> WriteF32<&mut Self>where
Self: Unpin,
fn write_f32(&mut self, n: f32) -> WriteF32<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_f64(&mut self, n: f64) -> WriteF64<&mut Self>where
Self: Unpin,
fn write_f64(&mut self, n: f64) -> WriteF64<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_u16_le(&mut self, n: u16) -> WriteU16Le<&mut Self>where
Self: Unpin,
fn write_u16_le(&mut self, n: u16) -> WriteU16Le<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_i16_le(&mut self, n: i16) -> WriteI16Le<&mut Self>where
Self: Unpin,
fn write_i16_le(&mut self, n: i16) -> WriteI16Le<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_u32_le(&mut self, n: u32) -> WriteU32Le<&mut Self>where
Self: Unpin,
fn write_u32_le(&mut self, n: u32) -> WriteU32Le<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_i32_le(&mut self, n: i32) -> WriteI32Le<&mut Self>where
Self: Unpin,
fn write_i32_le(&mut self, n: i32) -> WriteI32Le<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_u64_le(&mut self, n: u64) -> WriteU64Le<&mut Self>where
Self: Unpin,
fn write_u64_le(&mut self, n: u64) -> WriteU64Le<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_i64_le(&mut self, n: i64) -> WriteI64Le<&mut Self>where
Self: Unpin,
fn write_i64_le(&mut self, n: i64) -> WriteI64Le<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_u128_le(&mut self, n: u128) -> WriteU128Le<&mut Self>where
Self: Unpin,
fn write_u128_le(&mut self, n: u128) -> WriteU128Le<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_i128_le(&mut self, n: i128) -> WriteI128Le<&mut Self>where
Self: Unpin,
fn write_i128_le(&mut self, n: i128) -> WriteI128Le<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_f32_le(&mut self, n: f32) -> WriteF32Le<&mut Self>where
Self: Unpin,
fn write_f32_le(&mut self, n: f32) -> WriteF32Le<&mut Self>where
Self: Unpin,
io-util only.Source§fn write_f64_le(&mut self, n: f64) -> WriteF64Le<&mut Self>where
Self: Unpin,
fn write_f64_le(&mut self, n: f64) -> WriteF64Le<&mut Self>where
Self: Unpin,
io-util only.Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Available on non-loom only.
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
loom only.Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
Available on non-loom only.
impl<T> Instrument for T
loom only.§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§impl<T> WithSubscriber for T
Available on non-loom only.
impl<T> WithSubscriber for T
loom only.