diff options
Diffstat (limited to '')
| -rw-r--r-- | derive/src/network/list.rs | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/derive/src/network/list.rs b/derive/src/network/list.rs index d1035c4..4da958c 100644 --- a/derive/src/network/list.rs +++ b/derive/src/network/list.rs @@ -36,66 +36,3 @@ pub(crate) fn to(fields: &[NetworkField]) -> Vec<TokenStream> { }) .collect() } - -pub(crate) fn from(fields: &[NetworkField]) -> Vec<TokenStream> { - fields - .iter() - .map(|field| { - let field_name = field.ident.as_ref().unwrap(); - - let field_rename = match &field.rename { - Some(name) => name.clone(), - None => format!("{}", field.ident.as_ref().unwrap()), - }; - - let field_variant_type = get_field_variant_type(field); - - let extract_inner = if field.default { - quote! { - let mut i = input.iter(); - match i.position(|x| *x == libquassel::primitive::Variant::ByteArray(String::from(#field_rename))) { - Some(_) => { - match i.next().ok_or_else(|| crate::ProtocolError::MissingField(#field_rename.to_string()))? { - libquassel::primitive::Variant::#field_variant_type(var) => var - .clone() - .try_into() - .unwrap_or(Default::default()), - _ => Default::default(), - } - } - None => Default::default(), - } - } - } else { - quote! { - let mut i = input.iter(); - i.position(|x| *x == libquassel::primitive::Variant::ByteArray(String::from(#field_rename))) - .expect(format!("failed to get field {}", #field_rename).as_str()); - - match i.next().expect("failed to get next field") { - libquassel::primitive::Variant::#field_variant_type(var) => var.clone().try_into().unwrap(), - _ => panic!("network::list::from: wrong variant type"), - } - } - }; - - match field.network { - super::NetworkRepr::List => quote! { - #field_name: libquassel::message::NetworkList::from_network_list(&mut { - #extract_inner - })?, - }, - super::NetworkRepr::Map => quote! { - #field_name: libquassel::message::NetworkMap::from_network_map(&mut { - #extract_inner - })?, - }, - super::NetworkRepr::None => quote! { - #field_name: { - #extract_inner - }, - }, - } - }) - .collect() -} |
