From 8872fea2077f614225cf3c34998b4f787d7c3e98 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Sun, 29 Oct 2023 17:21:19 +0100 Subject: [PATCH 1/2] Add serde impls for usbip_protocol types --- src/usbip_protocol.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/usbip_protocol.rs b/src/usbip_protocol.rs index e2bf18f..3670fee 100644 --- a/src/usbip_protocol.rs +++ b/src/usbip_protocol.rs @@ -9,6 +9,9 @@ use std::io::Result; use tokio::io::{AsyncReadExt, AsyncWriteExt}; +#[cfg(feature = "serde")] +use serde::{Deserialize, Serialize}; + use crate::UsbDevice; /// USB/IP protocol version @@ -40,6 +43,7 @@ pub const USBIP_RET_UNLINK: u16 = 0x0004; /// All commands/responses which rely on a device being attached /// to a client use this header. #[derive(Debug, Clone, PartialEq, Eq)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct UsbIpHeaderBasic { pub command: u32, pub seqnum: u32, @@ -97,6 +101,7 @@ impl UsbIpHeaderBasic { /// Client side commands from the Virtual Host Controller #[derive(Debug, Clone, PartialEq, Eq)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum UsbIpCommand { OpReqDevlist { status: u32, @@ -272,6 +277,7 @@ impl UsbIpCommand { /// Server side responses from the USB Host #[derive(Clone)] +#[cfg_attr(feature = "serde", derive(Serialize))] pub enum UsbIpResponse { OpRepDevlist { status: u32, From d890684f7dba9ca1ec7d16cea2afa875adf85597 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Sun, 29 Oct 2023 17:21:54 +0100 Subject: [PATCH 2/2] Make setup.rs `use` statement conditional --- src/setup.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/setup.rs b/src/setup.rs index 6f4001a..0e9adb5 100644 --- a/src/setup.rs +++ b/src/setup.rs @@ -1,4 +1,5 @@ -use super::*; +#[cfg(feature = "serde")] +use serde::{Deserialize, Serialize}; /// Parse the SETUP packet of control transfers #[derive(Clone, Copy, Debug, Default)]