From a47a12ce941ba5755a5e46c36edd663c4b155d05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Wed, 23 Jul 2025 16:46:26 +0400 Subject: [PATCH] refactor(cliprdr): hand-implement Error trait MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc-André Lureau --- Cargo.lock | 1 - crates/ironrdp-cliprdr/Cargo.toml | 1 - crates/ironrdp-cliprdr/src/lib.rs | 17 ++++++++++++----- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 272c1f79..20080294 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2464,7 +2464,6 @@ dependencies = [ "ironrdp-core", "ironrdp-pdu", "ironrdp-svc", - "thiserror 1.0.69", "tracing", ] diff --git a/crates/ironrdp-cliprdr/Cargo.toml b/crates/ironrdp-cliprdr/Cargo.toml index 21b2b141..d0b131c7 100644 --- a/crates/ironrdp-cliprdr/Cargo.toml +++ b/crates/ironrdp-cliprdr/Cargo.toml @@ -19,7 +19,6 @@ test = false ironrdp-core = { path = "../ironrdp-core", version = "0.1" } # public ironrdp-pdu = { path = "../ironrdp-pdu", version = "0.5" } # public ironrdp-svc = { path = "../ironrdp-svc", version = "0.4" } # public -thiserror = "1.0" # FIXME: handwrite the Error trait implementations. tracing = { version = "0.1", features = ["log"] } bitflags = "2.9" diff --git a/crates/ironrdp-cliprdr/src/lib.rs b/crates/ironrdp-cliprdr/src/lib.rs index de98e0e0..5205ee5c 100644 --- a/crates/ironrdp-cliprdr/src/lib.rs +++ b/crates/ironrdp-cliprdr/src/lib.rs @@ -22,7 +22,6 @@ use pdu::{ ClipboardPdu, ClipboardProtocolVersion, FileContentsResponse, FormatDataRequest, FormatListResponse, OwnedFormatDataResponse, }; -use thiserror::Error; use tracing::{error, info}; #[rustfmt::skip] // do not reorder @@ -31,15 +30,23 @@ use crate::pdu::FormatList; /// PDUs for sending to the server on the CLIPRDR channel. pub type CliprdrSvcMessages = SvcProcessorMessages>; -#[derive(Debug, Error)] +#[derive(Debug)] enum ClipboardError { - #[error("received clipboard PDU is not implemented")] UnimplementedPdu { pdu: &'static str }, - - #[error("sent format list was rejected")] FormatListRejected, } +impl core::fmt::Display for ClipboardError { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + match self { + ClipboardError::UnimplementedPdu { pdu } => { + write!(f, "received clipboard PDU `{pdu}` is not implemented") + } + ClipboardError::FormatListRejected => write!(f, "sent format list was rejected"), + } + } +} + #[derive(Debug, Copy, Clone, PartialEq, Eq)] enum CliprdrState { Initialization,