ariel_os::reexports::embassy_usb

Struct InterfaceAltBuilder

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

Interface alternate setting builder.

Implementations§

§

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

pub const fn interface_number(&self) -> InterfaceNumber

Get the interface number.

pub const fn alt_setting_number(&self) -> u8

Get the alternate setting number.

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.

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

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

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.

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

Allocate an IN endpoint, without writing its descriptor.

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

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

Allocate an OUT endpoint, without writing its descriptor.

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

pub fn endpoint_bulk_in( &mut self, max_packet_size: u16, ) -> <D as Driver<'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.

pub fn endpoint_bulk_out( &mut self, max_packet_size: u16, ) -> <D as Driver<'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.

pub fn endpoint_interrupt_in( &mut self, max_packet_size: u16, interval_ms: u8, ) -> <D as Driver<'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.

pub fn endpoint_interrupt_out( &mut self, max_packet_size: u16, interval_ms: u8, ) -> <D as Driver<'d>>::EndpointOut

Allocate a INTERRUPT OUT endpoint and write its descriptor.

pub fn endpoint_isochronous_in( &mut self, max_packet_size: u16, interval_ms: u8, synchronization_type: SynchronizationType, usage_type: UsageType, extra_fields: &[u8], ) -> <D as Driver<'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.

pub fn endpoint_isochronous_out( &mut self, max_packet_size: u16, interval_ms: u8, synchronization_type: SynchronizationType, usage_type: UsageType, extra_fields: &[u8], ) -> <D as Driver<'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.

§

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