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