diff options
-rw-r--r-- | src/command.rs | 31 | ||||
-rw-r--r-- | src/lib.rs | 15 |
2 files changed, 42 insertions, 4 deletions
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> @@ -153,5 +153,18 @@ pub enum RegistryError /// Deserialization failed. #[error("Deserialization failed")] - DeserializationFailed(#[from] DeserializerError), + DeserializationFailed(#[from] DeserializationError), } + +impl From<DeserializerError> for RegistryError +{ + fn from(err: DeserializerError) -> Self + { + DeserializationError(err).into() + } +} + +/// Deserialization error. +#[derive(Debug, thiserror::Error)] +#[error(transparent)] +pub struct DeserializationError(#[from] DeserializerError); |