Struct tokio::net::tcp::WriteHalf

source ·
pub struct WriteHalf<'a>(_);
Available on crate feature 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<'_>

source

pub async fn ready(&self, interest: Interest) -> Result<Ready>

Waits for any of the requested ready states.

This function is usually paired with try_read() or try_write(). It can be used to concurrently read / write to the same socket on a single task without splitting the socket.

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.

source

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.

source

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.

source

pub fn try_write_vectored(&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, where n is the number of bytes written. If the stream is not ready to write data, Err(io::ErrorKind::WouldBlock) is returned.

source

pub fn peer_addr(&self) -> Result<SocketAddr>

Returns the remote address that this stream is connected to.

source

pub fn local_addr(&self) -> Result<SocketAddr>

Returns the local address that this stream is bound to.

Trait Implementations§

source§

impl AsRef<TcpStream> for WriteHalf<'_>

source§

fn as_ref(&self) -> &TcpStream

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl AsyncWrite for WriteHalf<'_>

source§

fn poll_write( self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &[u8] ) -> Poll<Result<usize>>

Attempt to write bytes from buf into the object. Read more
source§

fn poll_write_vectored( self: Pin<&mut Self>, cx: &mut Context<'_>, bufs: &[IoSlice<'_>] ) -> Poll<Result<usize>>

Like poll_write, except that it writes from a slice of buffers. Read more
source§

fn is_write_vectored(&self) -> bool

Determines if this writer has an efficient poll_write_vectored implementation. Read more
source§

fn poll_flush(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll<Result<()>>

Attempts to flush the object, ensuring that any buffered data reach their destination. Read more
source§

fn poll_shutdown(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll<Result<()>>

Initiates or attempts to shut down this writer, returning success when the I/O connection has completely shut down. Read more
source§

impl<'a> Debug for WriteHalf<'a>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

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> UnwindSafe for WriteHalf<'a>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<W> AsyncWriteExt for Wwhere W: AsyncWrite + ?Sized,

source§

fn write<'a>(&'a mut self, src: &'a [u8]) -> Write<'a, Self>where Self: Unpin,

Available on crate feature io-util only.
Writes a buffer into this writer, returning how many bytes were written. Read more
source§

fn write_vectored<'a, 'b>( &'a mut self, bufs: &'a [IoSlice<'b>] ) -> WriteVectored<'a, 'b, Self>where Self: Unpin,

Available on crate feature io-util only.
Like write, except that it writes from a slice of buffers. Read more
source§

fn write_buf<'a, B>(&'a mut self, src: &'a mut B) -> WriteBuf<'a, Self, B>where Self: Sized + Unpin, B: Buf,

Available on crate feature io-util only.
Writes a buffer into this writer, advancing the buffer’s internal cursor. Read more
source§

fn write_all_buf<'a, B>( &'a mut self, src: &'a mut B ) -> WriteAllBuf<'a, Self, B>where Self: Sized + Unpin, B: Buf,

Available on crate feature io-util only.
Attempts to write an entire buffer into this writer. Read more
source§

fn write_all<'a>(&'a mut self, src: &'a [u8]) -> WriteAll<'a, Self>where Self: Unpin,

Available on crate feature io-util only.
Attempts to write an entire buffer into this writer. Read more
source§

fn write_u8<'a>(&'a mut self, n: u8) -> WriteU8<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes an unsigned 8-bit integer to the underlying writer. Read more
source§

fn write_i8<'a>(&'a mut self, n: i8) -> WriteI8<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes a signed 8-bit integer to the underlying writer. Read more
source§

fn write_u16<'a>(&'a mut self, n: u16) -> WriteU16<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes an unsigned 16-bit integer in big-endian order to the underlying writer. Read more
source§

fn write_i16<'a>(&'a mut self, n: i16) -> WriteI16<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes a signed 16-bit integer in big-endian order to the underlying writer. Read more
source§

fn write_u32<'a>(&'a mut self, n: u32) -> WriteU32<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes an unsigned 32-bit integer in big-endian order to the underlying writer. Read more
source§

fn write_i32<'a>(&'a mut self, n: i32) -> WriteI32<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes a signed 32-bit integer in big-endian order to the underlying writer. Read more
source§

fn write_u64<'a>(&'a mut self, n: u64) -> WriteU64<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes an unsigned 64-bit integer in big-endian order to the underlying writer. Read more
source§

fn write_i64<'a>(&'a mut self, n: i64) -> WriteI64<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes an signed 64-bit integer in big-endian order to the underlying writer. Read more
source§

fn write_u128<'a>(&'a mut self, n: u128) -> WriteU128<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes an unsigned 128-bit integer in big-endian order to the underlying writer. Read more
source§

fn write_i128<'a>(&'a mut self, n: i128) -> WriteI128<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes an signed 128-bit integer in big-endian order to the underlying writer. Read more
source§

fn write_f32<'a>(&'a mut self, n: f32) -> WriteF32<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes an 32-bit floating point type in big-endian order to the underlying writer. Read more
source§

fn write_f64<'a>(&'a mut self, n: f64) -> WriteF64<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes an 64-bit floating point type in big-endian order to the underlying writer. Read more
source§

fn write_u16_le<'a>(&'a mut self, n: u16) -> WriteU16Le<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes an unsigned 16-bit integer in little-endian order to the underlying writer. Read more
source§

fn write_i16_le<'a>(&'a mut self, n: i16) -> WriteI16Le<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes a signed 16-bit integer in little-endian order to the underlying writer. Read more
source§

fn write_u32_le<'a>(&'a mut self, n: u32) -> WriteU32Le<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes an unsigned 32-bit integer in little-endian order to the underlying writer. Read more
source§

fn write_i32_le<'a>(&'a mut self, n: i32) -> WriteI32Le<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes a signed 32-bit integer in little-endian order to the underlying writer. Read more
source§

fn write_u64_le<'a>(&'a mut self, n: u64) -> WriteU64Le<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes an unsigned 64-bit integer in little-endian order to the underlying writer. Read more
source§

fn write_i64_le<'a>(&'a mut self, n: i64) -> WriteI64Le<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes an signed 64-bit integer in little-endian order to the underlying writer. Read more
source§

fn write_u128_le<'a>(&'a mut self, n: u128) -> WriteU128Le<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes an unsigned 128-bit integer in little-endian order to the underlying writer. Read more
source§

fn write_i128_le<'a>(&'a mut self, n: i128) -> WriteI128Le<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes an signed 128-bit integer in little-endian order to the underlying writer. Read more
source§

fn write_f32_le<'a>(&'a mut self, n: f32) -> WriteF32Le<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes an 32-bit floating point type in little-endian order to the underlying writer. Read more
source§

fn write_f64_le<'a>(&'a mut self, n: f64) -> WriteF64Le<&'a mut Self>where Self: Unpin,

Available on crate feature io-util only.
Writes an 64-bit floating point type in little-endian order to the underlying writer. Read more
source§

fn flush(&mut self) -> Flush<'_, Self>where Self: Unpin,

Available on crate feature io-util only.
Flushes this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
source§

fn shutdown(&mut self) -> Shutdown<'_, Self>where Self: Unpin,

Available on crate feature io-util only.
Shuts down the output stream, ensuring that the value can be dropped cleanly. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more