pub struct ReadHalf<'a>(_);
Expand description
Borrowed read half of a UnixStream
, created by split
.
Reading from a ReadHalf
is usually done using the convenience methods found on the
AsyncReadExt
trait.
Implementations
impl<'_> ReadHalf<'_>
impl<'_> ReadHalf<'_>
pub async fn ready(&'_ self, interest: Interest) -> Result<Ready, Error>
pub async fn ready(&'_ self, interest: Interest) -> Result<Ready, Error>
Wait 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.
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 readable(&'_ self) -> Result<(), Error>
pub async fn readable(&'_ self) -> Result<(), Error>
Waits for the socket to become readable.
This function is equivalent to ready(Interest::READABLE)
and is usually
paired with try_read()
.
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 that fails with WouldBlock
or
Poll::Pending
.
pub fn try_read(&self, buf: &mut [u8]) -> Result<usize, Error>
pub fn try_read(&self, buf: &mut [u8]) -> Result<usize, Error>
Tries to read data from the stream into the provided buffer, returning how many bytes were read.
Receives any pending data from the socket but does not wait for new data
to arrive. On success, returns the number of bytes read. Because
try_read()
is non-blocking, the buffer does not have to be stored by
the async task and can exist entirely on the stack.
Usually, readable()
or ready()
is used with this function.
Return
If data is successfully read, Ok(n)
is returned, where n
is the
number of bytes read. Ok(0)
indicates the stream’s read half is closed
and will no longer yield data. If the stream is not ready to read data
Err(io::ErrorKind::WouldBlock)
is returned.
pub fn try_read_buf<B>(&self, buf: &mut B) -> Result<usize, Error> where
B: BufMut,
pub fn try_read_buf<B>(&self, buf: &mut B) -> Result<usize, Error> where
B: BufMut,
Tries to read data from the stream into the provided buffer, advancing the buffer’s internal cursor, returning how many bytes were read.
Receives any pending data from the socket but does not wait for new data
to arrive. On success, returns the number of bytes read. Because
try_read_buf()
is non-blocking, the buffer does not have to be stored by
the async task and can exist entirely on the stack.
Usually, readable()
or ready()
is used with this function.
Return
If data is successfully read, Ok(n)
is returned, where n
is the
number of bytes read. Ok(0)
indicates the stream’s read half is closed
and will no longer yield data. If the stream is not ready to read data
pub fn try_read_vectored(
&self,
bufs: &mut [IoSliceMut<'_>]
) -> Result<usize, Error>
pub fn try_read_vectored(
&self,
bufs: &mut [IoSliceMut<'_>]
) -> Result<usize, Error>
Tries to read data from the stream into the provided buffers, returning how many bytes were read.
Data is copied to fill each buffer in order, with the final buffer
written to possibly being only partially filled. This method behaves
equivalently to a single call to try_read()
with concatenated
buffers.
Receives any pending data from the socket but does not wait for new data
to arrive. On success, returns the number of bytes read. Because
try_read_vectored()
is non-blocking, the buffer does not have to be
stored by the async task and can exist entirely on the stack.
Usually, readable()
or ready()
is used with this function.
Return
If data is successfully read, Ok(n)
is returned, where n
is the
number of bytes read. Ok(0)
indicates the stream’s read half is closed
and will no longer yield data. If the stream is not ready to read data
Err(io::ErrorKind::WouldBlock)
is returned.
pub fn peer_addr(&self) -> Result<SocketAddr, Error>
pub fn peer_addr(&self) -> Result<SocketAddr, Error>
Returns the socket address of the remote half of this connection.
pub fn local_addr(&self) -> Result<SocketAddr, Error>
pub fn local_addr(&self) -> Result<SocketAddr, Error>
Returns the socket address of the local half of this connection.
Trait Implementations
impl<'_> AsRef<UnixStream> for ReadHalf<'_>
impl<'_> AsRef<UnixStream> for ReadHalf<'_>
fn as_ref(&self) -> &UnixStream
fn as_ref(&self) -> &UnixStream
Converts this type into a shared reference of the (usually inferred) input type.
Auto Trait Implementations
impl<'a> RefUnwindSafe for ReadHalf<'a>
impl<'a> Send for ReadHalf<'a>
impl<'a> Sync for ReadHalf<'a>
impl<'a> Unpin for ReadHalf<'a>
impl<'a> UnwindSafe for ReadHalf<'a>
Blanket Implementations
impl<R> AsyncReadExt for R where
R: AsyncRead + ?Sized,
impl<R> AsyncReadExt for R where
R: AsyncRead + ?Sized,
fn chain<R>(self, next: R) -> Chain<Self, R> where
R: AsyncRead,
fn chain<R>(self, next: R) -> Chain<Self, R> where
R: AsyncRead,
Creates a new AsyncRead
instance that chains this stream with
next
. Read more
fn read(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self> where
Self: Unpin,
fn read(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self> where
Self: Unpin,
Pulls some bytes from this source into the specified buffer, returning how many bytes were read. Read more
fn read_buf<B>(&'a mut self, buf: &'a mut B) -> ReadBuf<'a, Self, B> where
Self: Unpin,
B: BufMut,
fn read_buf<B>(&'a mut self, buf: &'a mut B) -> ReadBuf<'a, Self, B> where
Self: Unpin,
B: BufMut,
Pulls some bytes from this source into the specified buffer, advancing the buffer’s internal cursor. Read more
fn read_exact(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self> where
Self: Unpin,
fn read_exact(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self> where
Self: Unpin,
Reads the exact number of bytes required to fill buf
. Read more
fn read_u8(&'a mut self) -> ReadU8<&'a mut Self> where
Self: Unpin,
fn read_u8(&'a mut self) -> ReadU8<&'a mut Self> where
Self: Unpin,
Reads an unsigned 8 bit integer from the underlying reader. Read more
fn read_i8(&'a mut self) -> ReadI8<&'a mut Self> where
Self: Unpin,
fn read_i8(&'a mut self) -> ReadI8<&'a mut Self> where
Self: Unpin,
Reads a signed 8 bit integer from the underlying reader. Read more
fn read_u16(&'a mut self) -> ReadU16<&'a mut Self> where
Self: Unpin,
fn read_u16(&'a mut self) -> ReadU16<&'a mut Self> where
Self: Unpin,
Reads an unsigned 16-bit integer in big-endian order from the underlying reader. Read more
fn read_i16(&'a mut self) -> ReadI16<&'a mut Self> where
Self: Unpin,
fn read_i16(&'a mut self) -> ReadI16<&'a mut Self> where
Self: Unpin,
Reads a signed 16-bit integer in big-endian order from the underlying reader. Read more
fn read_u32(&'a mut self) -> ReadU32<&'a mut Self> where
Self: Unpin,
fn read_u32(&'a mut self) -> ReadU32<&'a mut Self> where
Self: Unpin,
Reads an unsigned 32-bit integer in big-endian order from the underlying reader. Read more
fn read_i32(&'a mut self) -> ReadI32<&'a mut Self> where
Self: Unpin,
fn read_i32(&'a mut self) -> ReadI32<&'a mut Self> where
Self: Unpin,
Reads a signed 32-bit integer in big-endian order from the underlying reader. Read more
fn read_u64(&'a mut self) -> ReadU64<&'a mut Self> where
Self: Unpin,
fn read_u64(&'a mut self) -> ReadU64<&'a mut Self> where
Self: Unpin,
Reads an unsigned 64-bit integer in big-endian order from the underlying reader. Read more
fn read_i64(&'a mut self) -> ReadI64<&'a mut Self> where
Self: Unpin,
fn read_i64(&'a mut self) -> ReadI64<&'a mut Self> where
Self: Unpin,
Reads an signed 64-bit integer in big-endian order from the underlying reader. Read more
fn read_u128(&'a mut self) -> ReadU128<&'a mut Self> where
Self: Unpin,
fn read_u128(&'a mut self) -> ReadU128<&'a mut Self> where
Self: Unpin,
Reads an unsigned 128-bit integer in big-endian order from the underlying reader. Read more
fn read_i128(&'a mut self) -> ReadI128<&'a mut Self> where
Self: Unpin,
fn read_i128(&'a mut self) -> ReadI128<&'a mut Self> where
Self: Unpin,
Reads an signed 128-bit integer in big-endian order from the underlying reader. Read more
fn read_f32(&'a mut self) -> ReadF32<&'a mut Self> where
Self: Unpin,
fn read_f32(&'a mut self) -> ReadF32<&'a mut Self> where
Self: Unpin,
Reads an 32-bit floating point type in big-endian order from the underlying reader. Read more
fn read_f64(&'a mut self) -> ReadF64<&'a mut Self> where
Self: Unpin,
fn read_f64(&'a mut self) -> ReadF64<&'a mut Self> where
Self: Unpin,
Reads an 64-bit floating point type in big-endian order from the underlying reader. Read more
fn read_u16_le(&'a mut self) -> ReadU16Le<&'a mut Self> where
Self: Unpin,
fn read_u16_le(&'a mut self) -> ReadU16Le<&'a mut Self> where
Self: Unpin,
Reads an unsigned 16-bit integer in little-endian order from the underlying reader. Read more
fn read_i16_le(&'a mut self) -> ReadI16Le<&'a mut Self> where
Self: Unpin,
fn read_i16_le(&'a mut self) -> ReadI16Le<&'a mut Self> where
Self: Unpin,
Reads a signed 16-bit integer in little-endian order from the underlying reader. Read more
fn read_u32_le(&'a mut self) -> ReadU32Le<&'a mut Self> where
Self: Unpin,
fn read_u32_le(&'a mut self) -> ReadU32Le<&'a mut Self> where
Self: Unpin,
Reads an unsigned 32-bit integer in little-endian order from the underlying reader. Read more
fn read_i32_le(&'a mut self) -> ReadI32Le<&'a mut Self> where
Self: Unpin,
fn read_i32_le(&'a mut self) -> ReadI32Le<&'a mut Self> where
Self: Unpin,
Reads a signed 32-bit integer in little-endian order from the underlying reader. Read more
fn read_u64_le(&'a mut self) -> ReadU64Le<&'a mut Self> where
Self: Unpin,
fn read_u64_le(&'a mut self) -> ReadU64Le<&'a mut Self> where
Self: Unpin,
Reads an unsigned 64-bit integer in little-endian order from the underlying reader. Read more
fn read_i64_le(&'a mut self) -> ReadI64Le<&'a mut Self> where
Self: Unpin,
fn read_i64_le(&'a mut self) -> ReadI64Le<&'a mut Self> where
Self: Unpin,
Reads an signed 64-bit integer in little-endian order from the underlying reader. Read more
fn read_u128_le(&'a mut self) -> ReadU128Le<&'a mut Self> where
Self: Unpin,
fn read_u128_le(&'a mut self) -> ReadU128Le<&'a mut Self> where
Self: Unpin,
Reads an unsigned 128-bit integer in little-endian order from the underlying reader. Read more
fn read_i128_le(&'a mut self) -> ReadI128Le<&'a mut Self> where
Self: Unpin,
fn read_i128_le(&'a mut self) -> ReadI128Le<&'a mut Self> where
Self: Unpin,
Reads an signed 128-bit integer in little-endian order from the underlying reader. Read more
fn read_f32_le(&'a mut self) -> ReadF32Le<&'a mut Self> where
Self: Unpin,
fn read_f32_le(&'a mut self) -> ReadF32Le<&'a mut Self> where
Self: Unpin,
Reads an 32-bit floating point type in little-endian order from the underlying reader. Read more
fn read_f64_le(&'a mut self) -> ReadF64Le<&'a mut Self> where
Self: Unpin,
fn read_f64_le(&'a mut self) -> ReadF64Le<&'a mut Self> where
Self: Unpin,
Reads an 64-bit floating point type in little-endian order from the underlying reader. Read more
fn read_to_end(
&'a mut self,
buf: &'a mut Vec<u8, Global>
) -> ReadToEnd<'a, Self> where
Self: Unpin,
fn read_to_end(
&'a mut self,
buf: &'a mut Vec<u8, Global>
) -> ReadToEnd<'a, Self> where
Self: Unpin,
Reads all bytes until EOF in this source, placing them into buf
. Read more
fn read_to_string(&'a mut self, dst: &'a mut String) -> ReadToString<'a, Self> where
Self: Unpin,
fn read_to_string(&'a mut self, dst: &'a mut String) -> ReadToString<'a, Self> where
Self: Unpin,
Reads all bytes until EOF in this source, appending them to buf
. Read more
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
sourcefn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
T: Future, type Output = <T as Future>::Output;
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
fn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more