aboutsummaryrefslogtreecommitdiff
path: root/embassy-usb/src/builder.rs
diff options
context:
space:
mode:
authorRafael Bachmann <[email protected]>2023-10-15 23:45:44 +0200
committerRafael Bachmann <[email protected]>2023-10-15 23:52:44 +0200
commit31d4516516940720101300a40d0d6d2bb8d1728e (patch)
treece44bfebf56fea7726bccae7d2617efd360af319 /embassy-usb/src/builder.rs
parent66e62e999409fd6967ab959a061f7eae660102d0 (diff)
Apply Pedantic Clippy Lints
Diffstat (limited to 'embassy-usb/src/builder.rs')
-rw-r--r--embassy-usb/src/builder.rs42
1 files changed, 20 insertions, 22 deletions
diff --git a/embassy-usb/src/builder.rs b/embassy-usb/src/builder.rs
index 8860f9eea..b4ddccd71 100644
--- a/embassy-usb/src/builder.rs
+++ b/embassy-usb/src/builder.rs
@@ -1,17 +1,17 @@
1use heapless::Vec; 1use heapless::Vec;
2 2
3use crate::config::*; 3use crate::config::MAX_HANDLER_COUNT;
4use crate::descriptor::{BosWriter, DescriptorWriter}; 4use crate::descriptor::{BosWriter, DescriptorWriter};
5use crate::driver::{Driver, Endpoint, EndpointType}; 5use crate::driver::{Driver, Endpoint, EndpointType};
6#[cfg(feature = "msos-descriptor")] 6#[cfg(feature = "msos-descriptor")]
7use crate::msos::{DeviceLevelDescriptor, FunctionLevelDescriptor, MsOsDescriptorWriter}; 7use crate::msos::{DeviceLevelDescriptor, FunctionLevelDescriptor, MsOsDescriptorWriter};
8use crate::types::*; 8use crate::types::{InterfaceNumber, StringIndex};
9use crate::{Handler, Interface, UsbDevice, MAX_INTERFACE_COUNT, STRING_INDEX_CUSTOM_START}; 9use crate::{Handler, Interface, UsbDevice, MAX_INTERFACE_COUNT, STRING_INDEX_CUSTOM_START};
10 10
11#[derive(Debug, Copy, Clone)] 11#[derive(Debug, Copy, Clone)]
12#[cfg_attr(feature = "defmt", derive(defmt::Format))] 12#[cfg_attr(feature = "defmt", derive(defmt::Format))]
13#[non_exhaustive] 13#[non_exhaustive]
14/// Configuration used when creating [UsbDevice]. 14/// Configuration used when creating [`UsbDevice`].
15pub struct Config<'a> { 15pub struct Config<'a> {
16 pub(crate) vendor_id: u16, 16 pub(crate) vendor_id: u16,
17 pub(crate) product_id: u16, 17 pub(crate) product_id: u16,
@@ -159,9 +159,10 @@ impl<'d, D: Driver<'d>> Builder<'d, D> {
159 panic!("if composite_with_iads is set, you must set device_class = 0xEF, device_sub_class = 0x02, device_protocol = 0x01"); 159 panic!("if composite_with_iads is set, you must set device_class = 0xEF, device_sub_class = 0x02, device_protocol = 0x01");
160 } 160 }
161 161
162 if config.max_power > 500 { 162 assert!(
163 panic!("The maximum allowed value for `max_power` is 500mA"); 163 config.max_power <= 500,
164 } 164 "The maximum allowed value for `max_power` is 500mA"
165 );
165 166
166 match config.max_packet_size_0 { 167 match config.max_packet_size_0 {
167 8 | 16 | 32 | 64 => {} 168 8 | 16 | 32 | 64 => {}
@@ -260,12 +261,11 @@ impl<'d, D: Driver<'d>> Builder<'d, D> {
260 /// The Handler is called on some USB bus events, and to handle all control requests not already 261 /// The Handler is called on some USB bus events, and to handle all control requests not already
261 /// handled by the USB stack. 262 /// handled by the USB stack.
262 pub fn handler(&mut self, handler: &'d mut dyn Handler) { 263 pub fn handler(&mut self, handler: &'d mut dyn Handler) {
263 if self.handlers.push(handler).is_err() { 264 assert!(
264 panic!( 265 self.handlers.push(handler).is_ok(),
265 "embassy-usb: handler list full. Increase the `max_handler_count` compile-time setting. Current value: {}", 266 "embassy-usb: handler list full. Increase the `max_handler_count` compile-time setting. Current value: {}",
266 MAX_HANDLER_COUNT 267 MAX_HANDLER_COUNT
267 ) 268 );
268 }
269 } 269 }
270 270
271 /// Allocates a new string index. 271 /// Allocates a new string index.
@@ -332,12 +332,10 @@ impl<'a, 'd, D: Driver<'d>> FunctionBuilder<'a, 'd, D> {
332 num_alt_settings: 0, 332 num_alt_settings: 0,
333 }; 333 };
334 334
335 if self.builder.interfaces.push(iface).is_err() { 335 assert!(self.builder.interfaces.push(iface).is_ok(),
336 panic!( 336 "embassy-usb: interface list full. Increase the `max_interface_count` compile-time setting. Current value: {}",
337 "embassy-usb: interface list full. Increase the `max_interface_count` compile-time setting. Current value: {}", 337 MAX_INTERFACE_COUNT
338 MAX_INTERFACE_COUNT 338 );
339 )
340 }
341 339
342 InterfaceBuilder { 340 InterfaceBuilder {
343 builder: self.builder, 341 builder: self.builder,
@@ -371,7 +369,7 @@ pub struct InterfaceBuilder<'a, 'd, D: Driver<'d>> {
371 369
372impl<'a, 'd, D: Driver<'d>> InterfaceBuilder<'a, 'd, D> { 370impl<'a, 'd, D: Driver<'d>> InterfaceBuilder<'a, 'd, D> {
373 /// Get the interface number. 371 /// Get the interface number.
374 pub fn interface_number(&self) -> InterfaceNumber { 372 pub const fn interface_number(&self) -> InterfaceNumber {
375 self.interface_number 373 self.interface_number
376 } 374 }
377 375
@@ -422,12 +420,12 @@ pub struct InterfaceAltBuilder<'a, 'd, D: Driver<'d>> {
422 420
423impl<'a, 'd, D: Driver<'d>> InterfaceAltBuilder<'a, 'd, D> { 421impl<'a, 'd, D: Driver<'d>> InterfaceAltBuilder<'a, 'd, D> {
424 /// Get the interface number. 422 /// Get the interface number.
425 pub fn interface_number(&self) -> InterfaceNumber { 423 pub const fn interface_number(&self) -> InterfaceNumber {
426 self.interface_number 424 self.interface_number
427 } 425 }
428 426
429 /// Get the alternate setting number. 427 /// Get the alternate setting number.
430 pub fn alt_setting_number(&self) -> u8 { 428 pub const fn alt_setting_number(&self) -> u8 {
431 self.alt_setting_number 429 self.alt_setting_number
432 } 430 }
433 431
@@ -436,7 +434,7 @@ impl<'a, 'd, D: Driver<'d>> InterfaceAltBuilder<'a, 'd, D> {
436 /// Descriptors are written in the order builder functions are called. Note that some 434 /// Descriptors are written in the order builder functions are called. Note that some
437 /// classes care about the order. 435 /// classes care about the order.
438 pub fn descriptor(&mut self, descriptor_type: u8, descriptor: &[u8]) { 436 pub fn descriptor(&mut self, descriptor_type: u8, descriptor: &[u8]) {
439 self.builder.config_descriptor.write(descriptor_type, descriptor) 437 self.builder.config_descriptor.write(descriptor_type, descriptor);
440 } 438 }
441 439
442 fn endpoint_in(&mut self, ep_type: EndpointType, max_packet_size: u16, interval_ms: u8) -> D::EndpointIn { 440 fn endpoint_in(&mut self, ep_type: EndpointType, max_packet_size: u16, interval_ms: u8) -> D::EndpointIn {