From b7fffe065d929f36dadb53b950ea1fe79b772332 Mon Sep 17 00:00:00 2001 From: Max Audron Date: Sat, 21 Feb 2026 17:15:02 +0100 Subject: use ProtocolError for From derive --- derive/src/from/mod.rs | 11 ++++++----- src/message/signalproxy/translation.rs | 3 +-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/derive/src/from/mod.rs b/derive/src/from/mod.rs index 7fd81bf..818623d 100644 --- a/derive/src/from/mod.rs +++ b/derive/src/from/mod.rs @@ -43,7 +43,6 @@ pub fn from(input: proc_macro::TokenStream) -> proc_macro::TokenStream { .map(|field| { let variant = &field.ident; let inner_type = &field.fields.fields[0]; - let inner_type_str = format!("{}", quote! { #inner_type }); quote! { impl From<#inner_type> for #enum_name { @@ -53,23 +52,23 @@ pub fn from(input: proc_macro::TokenStream) -> proc_macro::TokenStream { } impl std::convert::TryFrom<#enum_name> for #inner_type { - type Error = String; + type Error = crate::error::ProtocolError; fn try_from(input: #enum_name) -> Result { match input { #enum_name::#variant(input) => Ok(input), - v => Err(format!("variant::from: wrong variant, expected: {}, got: {:?}", #inner_type_str, v)), + _ => Err(crate::error::ProtocolError::WrongVariant), } } } impl std::convert::TryFrom<&#enum_name> for #inner_type { - type Error = String; + type Error = crate::error::ProtocolError; fn try_from(input: &#enum_name) -> Result { match input { #enum_name::#variant(input) => Ok(input.clone()), - v => Err(format!("variant::from: wrong variant, expected: {}, got: {:?}", #inner_type_str, v)), + _ => Err(crate::error::ProtocolError::WrongVariant), } } } @@ -86,3 +85,5 @@ pub fn from(input: proc_macro::TokenStream) -> proc_macro::TokenStream { gen.into() } + + diff --git a/src/message/signalproxy/translation.rs b/src/message/signalproxy/translation.rs index b175e44..f120026 100644 --- a/src/message/signalproxy/translation.rs +++ b/src/message/signalproxy/translation.rs @@ -106,8 +106,7 @@ pub trait Network { pub trait NetworkMap where - // TODO correct this error type - Self::Item: TryFrom, + Self::Item: TryFrom, Self::Item: Into, { type Item; -- cgit v1.2.3