diff options
| author | Max Audron <me@audron.dev> | 2026-02-22 15:19:49 +0100 |
|---|---|---|
| committer | Max Audron <me@audron.dev> | 2026-02-22 15:19:49 +0100 |
| commit | 9110ff85313ea9bf5ee93f60122ce5660accede2 (patch) | |
| tree | 0c4b8553a63ae269475d380cb5f1b365498b6297 /derive/src/network/map.rs | |
| parent | add more git remotes (diff) | |
NetworkMap error handling
Diffstat (limited to 'derive/src/network/map.rs')
| -rw-r--r-- | derive/src/network/map.rs | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/derive/src/network/map.rs b/derive/src/network/map.rs index 1576c99..39d1cd8 100644 --- a/derive/src/network/map.rs +++ b/derive/src/network/map.rs @@ -18,10 +18,10 @@ pub(crate) fn to(fields: &[NetworkField]) -> Vec<TokenStream> { let field_inner = match field.network { crate::network::NetworkRepr::List => quote! { - libquassel::message::NetworkList::to_network_list(&self.#field_name).unwrap().into() + libquassel::message::NetworkList::to_network_list(&self.#field_name)?.into() }, crate::network::NetworkRepr::Map => quote! { - libquassel::message::NetworkMap::to_network_map(&self.#field_name).into() + libquassel::message::NetworkMap::to_network_map(&self.#field_name)?.into() }, crate::network::NetworkRepr::None => quote! { self.#field_name.clone().into() @@ -59,11 +59,11 @@ pub(crate) fn from(fields: &[NetworkField]) -> Vec<TokenStream> { match field.network { super::NetworkRepr::List => quote! { #field_name: libquassel::message::NetworkList::from_network_list( - &mut std::convert::TryInto::try_into(input.remove(#field_rename).unwrap()).#unwrap).unwrap(), + &mut std::convert::TryInto::try_into(input.remove(#field_rename).unwrap()).#unwrap)?, }, super::NetworkRepr::Map => quote! { #field_name: libquassel::message::NetworkMap::from_network_map( - &mut std::convert::TryInto::try_into(input.remove(#field_rename).unwrap()).#unwrap), + &mut std::convert::TryInto::try_into(input.remove(#field_rename).unwrap()).#unwrap)?, }, super::NetworkRepr::None => quote! { #field_name: std::convert::TryInto::try_into(input.remove(#field_rename).unwrap()).#unwrap, @@ -75,9 +75,8 @@ pub(crate) fn from(fields: &[NetworkField]) -> Vec<TokenStream> { pub(crate) fn to_vec(_type_name: &Ident, _fields: &[NetworkField]) -> TokenStream { quote! { - self.iter().map(|item| { - item.to_network_map().into() - }).collect() + let res: Vec<libquassel::primitive::VariantMap> = self.iter().map(|item| { item.to_network_map() }).collect::<crate::Result<Vec<libquassel::primitive::VariantMap>>>()?; + Ok(res.into_iter().map(|item| item.into()).collect()) } } |
