embassy-usb

Crates

git

Versions

default

Flavors

Struct BufferedReceiver

Source
pub struct BufferedReceiver<'d, D: Driver<'d>> { /* private fields */ }
Expand description

CDC ACM class buffered receiver.

It is a requirement of the embedded_io_async::Read trait that arbitrarily small lengths of data can be read from the stream. The Receiver can only read full packets at a time. The BufferedReceiver instead buffers a single packet if the caller does not read all of the data, so that the remaining data can be returned in subsequent calls.

If you have no requirement to use the embedded_io_async::Read trait or to read a data length less than the packet length, then it is more efficient to use the Receiver directly.

You can obtain a BufferedReceiver with Receiver::into_buffered.

Implementations§

Source§

impl<'d, D: Driver<'d>> BufferedReceiver<'d, D>

Source

pub fn line_coding(&self) -> LineCoding

Gets the current line coding. The line coding contains information that’s mainly relevant for USB to UART serial port emulators, and can be ignored if not relevant.

Source

pub fn dtr(&self) -> bool

Gets the DTR (data terminal ready) state

Source

pub fn rts(&self) -> bool

Gets the RTS (request to send) state

Source

pub async fn wait_connection(&mut self)

Waits for the USB host to enable this interface

Trait Implementations§

Source§

impl<'d, D: Driver<'d>> ErrorType for BufferedReceiver<'d, D>

Source§

type Error = EndpointError

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

impl<'d, D: Driver<'d>> Read for BufferedReceiver<'d, D>

Source§

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

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

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

Auto Trait Implementations§

§

impl<'d, D> Freeze for BufferedReceiver<'d, D>
where <D as Driver<'d>>::EndpointOut: Freeze,

§

impl<'d, D> !RefUnwindSafe for BufferedReceiver<'d, D>

§

impl<'d, D> !Send for BufferedReceiver<'d, D>

§

impl<'d, D> !Sync for BufferedReceiver<'d, D>

§

impl<'d, D> Unpin for BufferedReceiver<'d, D>
where <D as Driver<'d>>::EndpointOut: Unpin,

§

impl<'d, D> !UnwindSafe for BufferedReceiver<'d, D>

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.

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