summaryrefslogtreecommitdiff
path: root/embassy-usb/src/builder.rs
diff options
context:
space:
mode:
Diffstat (limited to 'embassy-usb/src/builder.rs')
-rw-r--r--embassy-usb/src/builder.rs54
1 files changed, 11 insertions, 43 deletions
diff --git a/embassy-usb/src/builder.rs b/embassy-usb/src/builder.rs
index 09904949..1ca24cc0 100644
--- a/embassy-usb/src/builder.rs
+++ b/embassy-usb/src/builder.rs
@@ -1,14 +1,11 @@
use heapless::Vec;
-use crate::{Interface, STRING_INDEX_CUSTOM_START};
-
use super::control::ControlHandler;
use super::descriptor::{BosWriter, DescriptorWriter};
use super::driver::{Driver, Endpoint};
use super::types::*;
-use super::DeviceStateHandler;
-use super::UsbDevice;
-use super::MAX_INTERFACE_COUNT;
+use super::{DeviceStateHandler, UsbDevice, MAX_INTERFACE_COUNT};
+use crate::{Interface, STRING_INDEX_CUSTOM_START};
#[derive(Debug, Copy, Clone)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
@@ -151,9 +148,7 @@ impl<'d, D: Driver<'d>> Builder<'d, D> {
) -> Self {
// Magic values specified in USB-IF ECN on IADs.
if config.composite_with_iads
- && (config.device_class != 0xEF
- || config.device_sub_class != 0x02
- || config.device_protocol != 0x01)
+ && (config.device_class != 0xEF || config.device_sub_class != 0x02 || config.device_protocol != 0x01)
{
panic!("if composite_with_iads is set, you must set device_class = 0xEF, device_sub_class = 0x02, device_protocol = 0x01");
}
@@ -218,12 +213,7 @@ impl<'d, D: Driver<'d>> Builder<'d, D> {
/// with the given class/subclass/protocol, associating all the child interfaces.
///
/// If it's not set, no IAD descriptor is added.
- pub fn function(
- &mut self,
- class: u8,
- subclass: u8,
- protocol: u8,
- ) -> FunctionBuilder<'_, 'd, D> {
+ pub fn function(&mut self, class: u8, subclass: u8, protocol: u8) -> FunctionBuilder<'_, 'd, D> {
let iface_count_index = if self.config.composite_with_iads {
self.config_descriptor.iad(
InterfaceNumber::new(self.interfaces.len() as _),
@@ -315,24 +305,14 @@ impl<'a, 'd, D: Driver<'d>> InterfaceBuilder<'a, 'd, D> {
/// Alternate setting numbers are guaranteed to be allocated consecutively, starting from 0.
///
/// The first alternate setting, with number 0, is the default one.
- pub fn alt_setting(
- &mut self,
- class: u8,
- subclass: u8,
- protocol: u8,
- ) -> InterfaceAltBuilder<'_, 'd, D> {
+ pub fn alt_setting(&mut self, class: u8, subclass: u8, protocol: u8) -> InterfaceAltBuilder<'_, 'd, D> {
let number = self.next_alt_setting_number;
self.next_alt_setting_number += 1;
self.builder.interfaces[self.interface_number.0 as usize].num_alt_settings += 1;
- self.builder.config_descriptor.interface_alt(
- self.interface_number,
- number,
- class,
- subclass,
- protocol,
- None,
- );
+ self.builder
+ .config_descriptor
+ .interface_alt(self.interface_number, number, class, subclass, protocol, None);
InterfaceAltBuilder {
builder: self.builder,
@@ -365,17 +345,10 @@ impl<'a, 'd, D: Driver<'d>> InterfaceAltBuilder<'a, 'd, D> {
/// Descriptors are written in the order builder functions are called. Note that some
/// classes care about the order.
pub fn descriptor(&mut self, descriptor_type: u8, descriptor: &[u8]) {
- self.builder
- .config_descriptor
- .write(descriptor_type, descriptor)
+ self.builder.config_descriptor.write(descriptor_type, descriptor)
}
- fn endpoint_in(
- &mut self,
- ep_type: EndpointType,
- max_packet_size: u16,
- interval: u8,
- ) -> D::EndpointIn {
+ fn endpoint_in(&mut self, ep_type: EndpointType, max_packet_size: u16, interval: u8) -> D::EndpointIn {
let ep = self
.builder
.driver
@@ -387,12 +360,7 @@ impl<'a, 'd, D: Driver<'d>> InterfaceAltBuilder<'a, 'd, D> {
ep
}
- fn endpoint_out(
- &mut self,
- ep_type: EndpointType,
- max_packet_size: u16,
- interval: u8,
- ) -> D::EndpointOut {
+ fn endpoint_out(&mut self, ep_type: EndpointType, max_packet_size: u16, interval: u8) -> D::EndpointOut {
let ep = self
.builder
.driver