Struct WriteHalf
struct WriteHalf<'a>(_)
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
impl WriteHalf<'_>
async fn ready(self: &Self, interest: Interest) -> Result<Ready>Waits for any of the requested ready states.
This function is usually paired with
try_write(). It can be used instead ofwritable()to check the returned ready set forReady::WRITABLEandReady::WRITE_CLOSEDevents.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 emptyReadyset, 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
WouldBlockorPoll::Pending.async fn writable(self: &Self) -> Result<()>Waits for the socket to become writable.
This function is equivalent to
ready(Interest::WRITABLE)and is usually paired withtry_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
WouldBlockorPoll::Pending.fn try_write(self: &Self, buf: &[u8]) -> Result<usize>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, wherenis the number of bytes written. If the stream is not ready to write data,Err(io::ErrorKind::WouldBlock)is returned.fn try_write_vectored(self: &Self, bufs: &[IoSlice<'_>]) -> Result<usize>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, wherenis the number of bytes written. If the stream is not ready to write data,Err(io::ErrorKind::WouldBlock)is returned.fn peer_addr(self: &Self) -> Result<SocketAddr>Returns the remote address that this stream is connected to.
fn local_addr(self: &Self) -> Result<SocketAddr>Returns the local address that this stream is bound to.
impl AsRef for WriteHalf<'_>
fn as_ref(self: &Self) -> &TcpStream
impl AsyncWrite for WriteHalf<'_>
fn poll_write(self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &[u8]) -> Poll<Result<usize>>fn poll_write_vectored(self: Pin<&mut Self>, cx: &mut Context<'_>, bufs: &[IoSlice<'_>]) -> Poll<Result<usize>>fn is_write_vectored(self: &Self) -> boolfn poll_flush(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll<Result<()>>fn poll_shutdown(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll<Result<()>>
impl<'a> Debug for WriteHalf<'a>
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result
impl<'a> Freeze for WriteHalf<'a>
impl<'a> RefUnwindSafe for WriteHalf<'a>
impl<'a> Send for WriteHalf<'a>
impl<'a> Sync for WriteHalf<'a>
impl<'a> Unpin for WriteHalf<'a>
impl<'a> UnsafeUnpin for WriteHalf<'a>
impl<'a> UnwindSafe for WriteHalf<'a>
impl<T> Any for WriteHalf<'a>
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for WriteHalf<'a>
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for WriteHalf<'a>
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> From for WriteHalf<'a>
fn from(t: T) -> TReturns the argument unchanged.
impl<T, U> Into for WriteHalf<'a>
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for WriteHalf<'a>
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for WriteHalf<'a>
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>