aboutsummaryrefslogtreecommitdiff
path: root/derive
diff options
context:
space:
mode:
authorMax Audron <me@audron.dev>2026-02-21 17:15:02 +0100
committerMax Audron <me@audron.dev>2026-02-21 17:15:02 +0100
commitb7fffe065d929f36dadb53b950ea1fe79b772332 (patch)
treea9bda3a6c1901f5f2cf621e868d53e38c40f6a0a /derive
parentclean up clippy lints (diff)
use ProtocolError for From derive
Diffstat (limited to '')
-rw-r--r--derive/src/from/mod.rs11
1 files changed, 6 insertions, 5 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<Self, Self::Error> {
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<Self, Self::Error> {
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()
}
+
+