From c8e5944d697b33738c7ba01694dde5e360470043 Mon Sep 17 00:00:00 2001
From: HampusM <hampus@hampusmat.com>
Date: Sun, 26 Mar 2023 13:04:28 +0200
Subject: refactor: add deserializer error wrapper

---
 src/command.rs | 31 ++++++++++++++++++++++++++++---
 1 file changed, 28 insertions(+), 3 deletions(-)

(limited to 'src/command.rs')

diff --git a/src/command.rs b/src/command.rs
index 2ba92ea..5d3c935 100644
--- a/src/command.rs
+++ b/src/command.rs
@@ -9,6 +9,7 @@ use crate::deserialization::{
     IgnoreEnd,
     ResultExt,
 };
+use crate::DeserializationError;
 
 /// A command.
 #[derive(Debug, Clone, PartialEq, Eq)]
@@ -88,7 +89,15 @@ pub enum Error
 
     /// Deserialization failed.
     #[error("Deserialization failed")]
-    DeserializationFailed(#[from] DeserializerError),
+    DeserializationFailed(#[from] DeserializationError),
+}
+
+impl From<DeserializerError> for Error
+{
+    fn from(err: DeserializerError) -> Self
+    {
+        DeserializationError(err).into()
+    }
 }
 
 /// A command prototype.
@@ -160,7 +169,15 @@ pub enum PrototypeError
 
     /// Deserialization failed.
     #[error("Deserialization failed")]
-    DeserializationFailed(#[from] DeserializerError),
+    DeserializationFailed(#[from] DeserializationError),
+}
+
+impl From<DeserializerError> for PrototypeError
+{
+    fn from(err: DeserializerError) -> Self
+    {
+        DeserializationError(err).into()
+    }
 }
 
 /// A command parameter.
@@ -228,7 +245,15 @@ pub enum ParameterError
 
     /// Deserialization failed.
     #[error("Deserialization failed")]
-    DeserializationFailed(#[from] DeserializerError),
+    DeserializationFailed(#[from] DeserializationError),
+}
+
+impl From<DeserializerError> for ParameterError
+{
+    fn from(err: DeserializerError) -> Self
+    {
+        DeserializationError(err).into()
+    }
 }
 
 fn deserialize_type<Err>(deserializer: &mut impl Deserializer) -> Result<String, Err>
-- 
cgit v1.2.3-18-g5258