summary refs log tree commit diff
path: root/usb_util
diff options
context:
space:
mode:
Diffstat (limited to 'usb_util')
-rw-r--r--usb_util/src/types.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/usb_util/src/types.rs b/usb_util/src/types.rs
index eaebc70..f40dd6c 100644
--- a/usb_util/src/types.rs
+++ b/usb_util/src/types.rs
@@ -59,7 +59,7 @@ pub const DATA_PHASE_DIRECTION_OFFSET: u8 = 7;
 /// Bit mask of data phase transfer direction.
 pub const DATA_PHASE_DIRECTION: u8 = 1u8 << DATA_PHASE_DIRECTION_OFFSET;
 // Types of data phase transfer directions.
-#[derive(PartialEq)]
+#[derive(Copy, Clone, PartialEq)]
 pub enum ControlRequestDataPhaseTransferDirection {
     HostToDevice = 0,
     DeviceToHost = 1,
@@ -175,6 +175,9 @@ impl UsbRequestSetup {
 
     /// Return the type of standard control request.
     pub fn get_standard_request(&self) -> Option<StandardControlRequest> {
+        if self.get_type() != ControlRequestType::Standard {
+            return None;
+        }
         match self.request {
             0x00 => Some(StandardControlRequest::GetStatus),
             0x01 => Some(StandardControlRequest::ClearFeature),