embassy-usb

Crates

git

Versions

default

Flavors

embassy_usb

Struct InterfaceAltBuilder

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

Interface alternate setting builder.

Implementations§

Source§

impl<'a, 'd, D: Driver<'d>> InterfaceAltBuilder<'a, 'd, D>

Source

pub const fn interface_number(&self) -> InterfaceNumber

Get the interface number.

Source

pub const fn alt_setting_number(&self) -> u8

Get the alternate setting number.

Source

pub fn descriptor(&mut self, descriptor_type: u8, descriptor: &[u8])

Add a custom descriptor to this alternate setting.

Descriptors are written in the order builder functions are called. Note that some classes care about the order.

Source

pub fn bos_capability(&mut self, capability_type: u8, capability: &[u8])

Add a custom Binary Object Store (BOS) descriptor to this alternate setting.

Source

pub fn endpoint_descriptor( &mut self, endpoint: &EndpointInfo, synchronization_type: SynchronizationType, usage_type: UsageType, extra_fields: &[u8], )

Write a custom endpoint descriptor for a certain endpoint.

This can be necessary, if the endpoint descriptors can only be written after the endpoint was created. As an example, an endpoint descriptor may contain the address of an endpoint that was allocated earlier.

Source

pub fn alloc_endpoint_in( &mut self, ep_type: EndpointType, max_packet_size: u16, interval_ms: u8, ) -> D::EndpointIn

Allocate an IN endpoint, without writing its descriptor.

Used for granular control over the order of endpoint and descriptor creation.

Source

pub fn alloc_endpoint_out( &mut self, ep_type: EndpointType, max_packet_size: u16, interval_ms: u8, ) -> D::EndpointOut

Allocate an OUT endpoint, without writing its descriptor.

Use for granular control over the order of endpoint and descriptor creation.

Source

pub fn endpoint_bulk_in(&mut self, max_packet_size: u16) -> D::EndpointIn

Allocate a BULK IN endpoint and write its descriptor.

Descriptors are written in the order builder functions are called. Note that some classes care about the order.

Source

pub fn endpoint_bulk_out(&mut self, max_packet_size: u16) -> D::EndpointOut

Allocate a BULK OUT endpoint and write its descriptor.

Descriptors are written in the order builder functions are called. Note that some classes care about the order.

Source

pub fn endpoint_interrupt_in( &mut self, max_packet_size: u16, interval_ms: u8, ) -> D::EndpointIn

Allocate a INTERRUPT IN endpoint and write its descriptor.

Descriptors are written in the order builder functions are called. Note that some classes care about the order.

Source

pub fn endpoint_interrupt_out( &mut self, max_packet_size: u16, interval_ms: u8, ) -> D::EndpointOut

Allocate a INTERRUPT OUT endpoint and write its descriptor.

Source

pub fn endpoint_isochronous_in( &mut self, max_packet_size: u16, interval_ms: u8, synchronization_type: SynchronizationType, usage_type: UsageType, extra_fields: &[u8], ) -> D::EndpointIn

Allocate a ISOCHRONOUS IN endpoint and write its descriptor.

Descriptors are written in the order builder functions are called. Note that some classes care about the order.

Source

pub fn endpoint_isochronous_out( &mut self, max_packet_size: u16, interval_ms: u8, synchronization_type: SynchronizationType, usage_type: UsageType, extra_fields: &[u8], ) -> D::EndpointOut

Allocate a ISOCHRONOUS OUT endpoint and write its descriptor.

Auto Trait Implementations§

§

impl<'a, 'd, D> Freeze for InterfaceAltBuilder<'a, 'd, D>

§

impl<'a, 'd, D> !RefUnwindSafe for InterfaceAltBuilder<'a, 'd, D>

§

impl<'a, 'd, D> !Send for InterfaceAltBuilder<'a, 'd, D>

§

impl<'a, 'd, D> !Sync for InterfaceAltBuilder<'a, 'd, D>

§

impl<'a, 'd, D> Unpin for InterfaceAltBuilder<'a, 'd, D>

§

impl<'a, 'd, D> !UnwindSafe for InterfaceAltBuilder<'a, '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.