Embassy
embassy-usb

Crates

git

Versions

default

Flavors

Struct embassy_usb::Builder

source ·
pub struct Builder<'d, D: Driver<'d>> { /* private fields */ }
Expand description

UsbDevice builder.

Implementations§

source§

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

source

pub fn new( driver: D, config: Config<'d>, device_descriptor_buf: &'d mut [u8], config_descriptor_buf: &'d mut [u8], bos_descriptor_buf: &'d mut [u8], control_buf: &'d mut [u8] ) -> Self

Creates a builder for constructing a new UsbDevice.

control_buf is a buffer used for USB control request data. It should be sized large enough for the length of the largest control request (in or out) anticipated by any class added to the device.

source

pub fn build(self) -> UsbDevice<'d, D>

Creates the UsbDevice instance with the configuration in this builder.

source

pub fn control_buf_len(&self) -> usize

Returns the size of the control request data buffer. Can be used by classes to validate the buffer is large enough for their needs.

source

pub fn function( &mut self, class: u8, subclass: u8, protocol: u8 ) -> FunctionBuilder<'_, 'd, D>

Add an USB function.

If Config::composite_with_iads is set, this will add an IAD descriptor with the given class/subclass/protocol, associating all the child interfaces.

If it’s not set, no IAD descriptor is added.

source

pub fn handler(&mut self, handler: &'d mut dyn Handler)

Add a Handler.

The Handler is called on some USB bus events, and to handle all control requests not already handled by the USB stack.

source

pub fn string(&mut self) -> StringIndex

Allocates a new string index.

Auto Trait Implementations§

§

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

§

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

§

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

§

impl<'d, D> Unpin for Builder<'d, D>where D: Unpin,

§

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

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