Struct OwnedWriteHalf
pub struct OwnedWriteHalf { /* private fields */ }
net only.Owned write half of a UnixStream, created by into_split.
Note that in the AsyncWrite implementation of this type, poll_shutdown will shut down the stream in the write direction. Dropping the write half will also shut down the write half of the stream.
Writing to an OwnedWriteHalf is usually done using the convenience methods found on the AsyncWriteExt trait.
Implementations
impl OwnedWriteHalf
pub fn reunite(self, other: OwnedReadHalf) -> Result<UnixStream, ReuniteError>
Attempts to put the two halves of a UnixStream back together and recover the original socket. Succeeds only if the two halves originated from the same call to into_split.
pub fn forget(self)
Destroys the write half, but don’t close the write half of the stream until the read half is dropped. If the read half has already been dropped, this closes the stream.
pub async fn ready(&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 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 UnixStream::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.
pub async fn writable(&self) -> Result<()>
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.
pub fn try_write(&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, where n is the number of bytes written. If the stream is not ready to write data, Err(io::ErrorKind::WouldBlock) is returned.
pub fn try_write_vectored(&self, buf: &[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, where n is the number of bytes written. If the stream is not ready to write data, Err(io::ErrorKind::WouldBlock) is returned.
pub fn peer_addr(&self) -> Result<SocketAddr>
Returns the socket address of the remote half of this connection.
pub fn local_addr(&self) -> Result<SocketAddr>
Returns the socket address of the local half of this connection.
Trait Implementations
impl AsRef<UnixStream> for OwnedWriteHalf
fn as_ref(&self) -> &UnixStream
impl AsyncWrite for OwnedWriteHalf
fn poll_write( self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &[u8], ) -> Poll<Result<usize>>
buf into the object. Read more
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 more
fn is_write_vectored(&self) -> bool
poll_write_vectored implementation. Read more
impl Debug for OwnedWriteHalf
impl Drop for OwnedWriteHalf
Auto Trait Implementations
impl Freeze for OwnedWriteHalf
impl RefUnwindSafe for OwnedWriteHalf
impl Send for OwnedWriteHalf
impl Sync for OwnedWriteHalf
impl Unpin for OwnedWriteHalf
impl UnsafeUnpin for OwnedWriteHalf
impl UnwindSafe for OwnedWriteHalf
Blanket Implementations
impl<W> AsyncWriteExt for Wwhere W: AsyncWrite + ?Sized,
fn write<'a>(&'a mut self, src: &'a [u8]) -> Write<'a, Self>where Self: Unpin,
io-util only.fn write_vectored<'a, 'b>( &'a mut self, bufs: &'a [IoSlice<'b>], ) -> WriteVectored<'a, 'b, Self>where Self: Unpin,
io-util only.fn write_buf<'a, B>(&'a mut self, src: &'a mut B) -> WriteBuf<'a, Self, B>
io-util only.fn write_all_buf<'a, B>( &'a mut self, src: &'a mut B, ) -> WriteAllBuf<'a, Self, B>
io-util only.fn write_all<'a>(&'a mut self, src: &'a [u8]) -> WriteAll<'a, Self>where Self: Unpin,
io-util only.fn write_u8(&mut self, n: u8) -> WriteU8<&mut Self>where Self: Unpin,
io-util only.fn write_i8(&mut self, n: i8) -> WriteI8<&mut Self>where Self: Unpin,
io-util only.fn write_u16(&mut self, n: u16) -> WriteU16<&mut Self>where Self: Unpin,
io-util only.fn write_i16(&mut self, n: i16) -> WriteI16<&mut Self>where Self: Unpin,
io-util only.fn write_u32(&mut self, n: u32) -> WriteU32<&mut Self>where Self: Unpin,
io-util only.fn write_i32(&mut self, n: i32) -> WriteI32<&mut Self>where Self: Unpin,
io-util only.fn write_u64(&mut self, n: u64) -> WriteU64<&mut Self>where Self: Unpin,
io-util only.fn write_i64(&mut self, n: i64) -> WriteI64<&mut Self>where Self: Unpin,
io-util only.fn write_u128(&mut self, n: u128) -> WriteU128<&mut Self>where Self: Unpin,
io-util only.fn write_i128(&mut self, n: i128) -> WriteI128<&mut Self>where Self: Unpin,
io-util only.fn write_f32(&mut self, n: f32) -> WriteF32<&mut Self>where Self: Unpin,
io-util only.fn write_f64(&mut self, n: f64) -> WriteF64<&mut Self>where Self: Unpin,
io-util only.fn write_u16_le(&mut self, n: u16) -> WriteU16Le<&mut Self>where Self: Unpin,
io-util only.fn write_i16_le(&mut self, n: i16) -> WriteI16Le<&mut Self>where Self: Unpin,
io-util only.fn write_u32_le(&mut self, n: u32) -> WriteU32Le<&mut Self>where Self: Unpin,
io-util only.fn write_i32_le(&mut self, n: i32) -> WriteI32Le<&mut Self>where Self: Unpin,
io-util only.fn write_u64_le(&mut self, n: u64) -> WriteU64Le<&mut Self>where Self: Unpin,
io-util only.fn write_i64_le(&mut self, n: i64) -> WriteI64Le<&mut Self>where Self: Unpin,
io-util only.fn write_u128_le(&mut self, n: u128) -> WriteU128Le<&mut Self>where Self: Unpin,
io-util only.fn write_i128_le(&mut self, n: i128) -> WriteI128Le<&mut Self>where Self: Unpin,
io-util only.fn write_f32_le(&mut self, n: f32) -> WriteF32Le<&mut Self>where Self: Unpin,
io-util only.fn write_f64_le(&mut self, n: f64) -> WriteF64Le<&mut Self>where Self: Unpin,
io-util only.impl<T> BorrowMut<T> for Twhere T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> Instrument for T
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
impl<T> WithSubscriber for T
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/net/unix/struct.OwnedWriteHalf.html