ariel_os::reexports::embassy_net::tcp

Struct TcpReader

pub struct TcpReader<'a> { /* private fields */ }
Available on crate feature tcp only.
Expand description

The reader half of a TCP socket.

Implementations§

§

impl<'a> TcpReader<'a>

pub fn wait_read_ready(&self) -> impl Future<Output = ()>

Wait until the socket becomes readable.

A socket becomes readable when the receive half of the full-duplex connection is open (see may_recv()), and there is some pending data in the receive buffer.

This is the equivalent of read, without buffering any data.

pub async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>

Read data from the socket.

Returns how many bytes were read, or an error. If no data is available, it waits until there is at least one byte available.

§Note

A return value of Ok(0) means that we have read all data and the remote side has closed our receive half of the socket. The remote can no longer send bytes.

The send half of the socket is still open. If you want to reconnect using the socket you split this reader off the send half needs to be closed using abort().

pub async fn read_with<F, R>(&mut self, f: F) -> Result<R, Error>
where F: FnOnce(&mut [u8]) -> (usize, R),

Call f with the largest contiguous slice of octets in the receive buffer, and dequeue the amount of elements returned by f.

If no data is available, it waits until there is at least one byte available.

pub fn recv_capacity(&self) -> usize

Return the maximum number of bytes inside the transmit buffer.

pub fn recv_queue(&self) -> usize

Return the amount of octets queued in the receive buffer. This value can be larger than the slice read by the next recv or peek call because it includes all queued octets, and not only the octets that may be returned as a contiguous slice.

Trait Implementations§

§

impl<'d> ErrorType for TcpReader<'d>

§

type Error = Error

Error type of all the IO operations on this type.
§

impl<'d> Read for TcpReader<'d>

§

async fn read( &mut self, buf: &mut [u8], ) -> Result<usize, <TcpReader<'d> as ErrorType>::Error>

Read some bytes from this source into the specified buffer, returning how many bytes were read. Read more
§

async fn read_exact( &mut self, buf: &mut [u8], ) -> Result<(), ReadExactError<Self::Error>>

Read the exact number of bytes required to fill buf. Read more
§

impl<'d> ReadReady for TcpReader<'d>

§

fn read_ready(&mut self) -> Result<bool, <TcpReader<'d> as ErrorType>::Error>

Get whether the reader is ready for immediately reading. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for TcpReader<'a>

§

impl<'a> !RefUnwindSafe for TcpReader<'a>

§

impl<'a> !Send for TcpReader<'a>

§

impl<'a> !Sync for TcpReader<'a>

§

impl<'a> Unpin for TcpReader<'a>

§

impl<'a> !UnwindSafe for TcpReader<'a>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where 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.

§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

§

const WITNESS: W = W::MAKE

A constant of the type witness
§

impl<T> Identity for T
where T: ?Sized,

§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
Source§

impl<T, U> Into<U> for T
where 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> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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 T
where U: TryFrom<T>,

Source§

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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V