Merge pull request #134 from ephraimkunz/clippy-warnings-and-build
Fix clippy warnings and build with heck 0.4
This commit is contained in:
		
						commit
						71432d1e9b
					
				| @ -474,10 +474,7 @@ fn struct_default_namespace_no_prefix() { | |||||||
|   init(); |   init(); | ||||||
| 
 | 
 | ||||||
|   #[derive(Debug, PartialEq, YaDeserialize, YaSerialize)] |   #[derive(Debug, PartialEq, YaDeserialize, YaSerialize)] | ||||||
|   #[yaserde(
 |   #[yaserde(rename = "book", namespace = "http://www.sample.com/ns/domain")] | ||||||
|   rename = "book", |  | ||||||
|   namespace = "http://www.sample.com/ns/domain" |  | ||||||
|   )] |  | ||||||
|   pub struct Book { |   pub struct Book { | ||||||
|     author: String, |     author: String, | ||||||
|     title: String, |     title: String, | ||||||
| @ -497,4 +494,4 @@ fn struct_default_namespace_no_prefix() { | |||||||
| 
 | 
 | ||||||
|   serialize_and_validate!(model, content); |   serialize_and_validate!(model, content); | ||||||
|   deserialize_and_validate!(content, model, Book); |   deserialize_and_validate!(content, model, Book); | ||||||
| } | } | ||||||
|  | |||||||
| @ -21,7 +21,7 @@ fn get_value(iter: &mut IntoIter) -> Option<String> { | |||||||
|     (iter.next(), iter.next()) |     (iter.next(), iter.next()) | ||||||
|   { |   { | ||||||
|     if operator.as_char() == '=' { |     if operator.as_char() == '=' { | ||||||
|       Some(value.to_string().replace("\"", "")) |       Some(value.to_string().replace('"', "")) | ||||||
|     } else { |     } else { | ||||||
|       None |       None | ||||||
|     } |     } | ||||||
| @ -138,14 +138,13 @@ impl YaSerdeAttribute { | |||||||
|     let namespaces_matches: TokenStream = self |     let namespaces_matches: TokenStream = self | ||||||
|       .namespaces |       .namespaces | ||||||
|       .iter() |       .iter() | ||||||
|       .map(|(prefix, namespace)| { |       .filter_map(|(prefix, namespace)| { | ||||||
|         if configured_prefix.eq(prefix) { |         if configured_prefix.eq(prefix) { | ||||||
|           Some(quote!(#namespace => {})) |           Some(quote!(#namespace => {})) | ||||||
|         } else { |         } else { | ||||||
|           None |           None | ||||||
|         } |         } | ||||||
|       }) |       }) | ||||||
|       .flatten() |  | ||||||
|       .collect(); |       .collect(); | ||||||
| 
 | 
 | ||||||
|     quote!( |     quote!( | ||||||
| @ -316,7 +315,10 @@ fn parse_attributes_with_values() { | |||||||
|   let attrs = YaSerdeAttribute::parse(&attributes); |   let attrs = YaSerdeAttribute::parse(&attributes); | ||||||
| 
 | 
 | ||||||
|   let mut namespaces = BTreeMap::new(); |   let mut namespaces = BTreeMap::new(); | ||||||
|   namespaces.insert(Some("example".to_string()), "http://example.org".to_string()); |   namespaces.insert( | ||||||
|  |     Some("example".to_string()), | ||||||
|  |     "http://example.org".to_string(), | ||||||
|  |   ); | ||||||
| 
 | 
 | ||||||
|   assert_eq!( |   assert_eq!( | ||||||
|     YaSerdeAttribute { |     YaSerdeAttribute { | ||||||
|  | |||||||
| @ -1,5 +1,5 @@ | |||||||
| use crate::common::attribute::YaSerdeAttribute; | use crate::common::attribute::YaSerdeAttribute; | ||||||
| use heck::CamelCase; | use heck::ToUpperCamelCase; | ||||||
| use proc_macro2::Span; | use proc_macro2::Span; | ||||||
| use proc_macro2::{Ident, TokenStream}; | use proc_macro2::{Ident, TokenStream}; | ||||||
| use quote::{format_ident, quote}; | use quote::{format_ident, quote}; | ||||||
| @ -89,7 +89,7 @@ impl YaSerdeField { | |||||||
|     Ident::new( |     Ident::new( | ||||||
|       &format!( |       &format!( | ||||||
|         "__Visitor_{}_{}", |         "__Visitor_{}_{}", | ||||||
|         label.replace(".", "_").to_camel_case(), |         label.replace('.', "_").to_upper_camel_case(), | ||||||
|         struct_id |         struct_id | ||||||
|       ), |       ), | ||||||
|       self.get_span(), |       self.get_span(), | ||||||
| @ -109,7 +109,7 @@ impl YaSerdeField { | |||||||
|       .attributes |       .attributes | ||||||
|       .default |       .default | ||||||
|       .as_ref() |       .as_ref() | ||||||
|       .map(|default| Ident::new(&default, self.get_span())) |       .map(|default| Ident::new(default, self.get_span())) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   pub fn get_skip_serializing_if_function(&self) -> Option<Ident> { |   pub fn get_skip_serializing_if_function(&self) -> Option<Ident> { | ||||||
| @ -117,7 +117,7 @@ impl YaSerdeField { | |||||||
|       .attributes |       .attributes | ||||||
|       .skip_serializing_if |       .skip_serializing_if | ||||||
|       .as_ref() |       .as_ref() | ||||||
|       .map(|skip_serializing_if| Ident::new(&skip_serializing_if, self.get_span())) |       .map(|skip_serializing_if| Ident::new(skip_serializing_if, self.get_span())) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   pub fn get_namespace_matching( |   pub fn get_namespace_matching( | ||||||
|  | |||||||
| @ -19,8 +19,7 @@ pub fn parse( | |||||||
|   let match_to_enum: TokenStream = data_enum |   let match_to_enum: TokenStream = data_enum | ||||||
|     .variants |     .variants | ||||||
|     .iter() |     .iter() | ||||||
|     .map(|variant| parse_variant(variant, name)) |     .filter_map(|variant| parse_variant(variant, name)) | ||||||
|     .flatten() |  | ||||||
|     .collect(); |     .collect(); | ||||||
| 
 | 
 | ||||||
|   let flatten = root_attributes.flatten; |   let flatten = root_attributes.flatten; | ||||||
| @ -218,7 +217,7 @@ fn build_unnamed_visitor_calls( | |||||||
|     .iter() |     .iter() | ||||||
|     .map(|field| YaSerdeField::new(field.clone())) |     .map(|field| YaSerdeField::new(field.clone())) | ||||||
|     .enumerate() |     .enumerate() | ||||||
|     .map(|(idx, field)| { |     .filter_map(|(idx, field)| { | ||||||
|       let visitor_label = Ident::new(&format!("__Visitor_{}", idx), field.get_span()); |       let visitor_label = Ident::new(&format!("__Visitor_{}", idx), field.get_span()); | ||||||
| 
 | 
 | ||||||
|       let call_simple_type_visitor = |simple_type: Field, action| { |       let call_simple_type_visitor = |simple_type: Field, action| { | ||||||
| @ -302,6 +301,5 @@ fn build_unnamed_visitor_calls( | |||||||
|         simple_type => call_simple_type_visitor(simple_type, set_val), |         simple_type => call_simple_type_visitor(simple_type, set_val), | ||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
|     .flatten() |  | ||||||
|     .collect() |     .collect() | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| use crate::common::{Field, YaSerdeAttribute, YaSerdeField}; | use crate::common::{Field, YaSerdeAttribute, YaSerdeField}; | ||||||
| use crate::de::build_default_value::build_default_value; | use crate::de::build_default_value::build_default_value; | ||||||
| use heck::CamelCase; | use heck::ToUpperCamelCase; | ||||||
| use proc_macro2::{Span, TokenStream}; | use proc_macro2::{Span, TokenStream}; | ||||||
| use quote::quote; | use quote::quote; | ||||||
| use syn::{DataStruct, Ident}; | use syn::{DataStruct, Ident}; | ||||||
| @ -22,7 +22,7 @@ pub fn parse( | |||||||
|     .fields |     .fields | ||||||
|     .iter() |     .iter() | ||||||
|     .map(|field| YaSerdeField::new(field.clone())) |     .map(|field| YaSerdeField::new(field.clone())) | ||||||
|     .map(|field| match field.get_type() { |     .filter_map(|field| match field.get_type() { | ||||||
|       Field::FieldStruct { struct_name } => build_default_value( |       Field::FieldStruct { struct_name } => build_default_value( | ||||||
|         &field, |         &field, | ||||||
|         Some(quote!(#struct_name)), |         Some(quote!(#struct_name)), | ||||||
| @ -57,14 +57,13 @@ pub fn parse( | |||||||
|         build_default_value(&field, Some(type_token), value_builder) |         build_default_value(&field, Some(type_token), value_builder) | ||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
|     .flatten() |  | ||||||
|     .collect(); |     .collect(); | ||||||
| 
 | 
 | ||||||
|   let field_visitors: TokenStream = data_struct |   let field_visitors: TokenStream = data_struct | ||||||
|     .fields |     .fields | ||||||
|     .iter() |     .iter() | ||||||
|     .map(|field| YaSerdeField::new(field.clone())) |     .map(|field| YaSerdeField::new(field.clone())) | ||||||
|     .map(|field| { |     .filter_map(|field| { | ||||||
|       let struct_visitor = |struct_name: syn::Path| { |       let struct_visitor = |struct_name: syn::Path| { | ||||||
|         let struct_id: String = struct_name |         let struct_id: String = struct_name | ||||||
|           .segments |           .segments | ||||||
| @ -137,7 +136,6 @@ pub fn parse( | |||||||
|         simple_type => simple_type_visitor(simple_type), |         simple_type => simple_type_visitor(simple_type), | ||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
|     .flatten() |  | ||||||
|     .collect(); |     .collect(); | ||||||
| 
 | 
 | ||||||
|   let call_visitors: TokenStream = data_struct |   let call_visitors: TokenStream = data_struct | ||||||
| @ -145,7 +143,7 @@ pub fn parse( | |||||||
|     .iter() |     .iter() | ||||||
|     .map(|field| YaSerdeField::new(field.clone())) |     .map(|field| YaSerdeField::new(field.clone())) | ||||||
|     .filter(|field| !field.is_attribute() || !field.is_flatten()) |     .filter(|field| !field.is_attribute() || !field.is_flatten()) | ||||||
|     .map(|field| { |     .filter_map(|field| { | ||||||
|       let value_label = field.get_value_label(); |       let value_label = field.get_value_label(); | ||||||
|       let label_name = field.renamed_label_without_namespace(); |       let label_name = field.renamed_label_without_namespace(); | ||||||
| 
 | 
 | ||||||
| @ -175,7 +173,7 @@ pub fn parse( | |||||||
|           &field_visitor, |           &field_visitor, | ||||||
|           &action, |           &action, | ||||||
|           &field, |           &field, | ||||||
|           &root_attributes, |           root_attributes, | ||||||
|         ) |         ) | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
| @ -194,7 +192,6 @@ pub fn parse( | |||||||
|         simple_type => visit_simple(simple_type, quote! { = value }), |         simple_type => visit_simple(simple_type, quote! { = value }), | ||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
|     .flatten() |  | ||||||
|     .collect(); |     .collect(); | ||||||
| 
 | 
 | ||||||
|   let call_flatten_visitors: TokenStream = data_struct |   let call_flatten_visitors: TokenStream = data_struct | ||||||
| @ -202,7 +199,7 @@ pub fn parse( | |||||||
|     .iter() |     .iter() | ||||||
|     .map(|field| YaSerdeField::new(field.clone())) |     .map(|field| YaSerdeField::new(field.clone())) | ||||||
|     .filter(|field| !field.is_attribute() && field.is_flatten()) |     .filter(|field| !field.is_attribute() && field.is_flatten()) | ||||||
|     .map(|field| { |     .filter_map(|field| { | ||||||
|       let value_label = field.get_value_label(); |       let value_label = field.get_value_label(); | ||||||
| 
 | 
 | ||||||
|       match field.get_type() { |       match field.get_type() { | ||||||
| @ -218,7 +215,6 @@ pub fn parse( | |||||||
|         field_type => unimplemented!(r#""flatten" is not implemented for {:?}"#, field_type), |         field_type => unimplemented!(r#""flatten" is not implemented for {:?}"#, field_type), | ||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
|     .flatten() |  | ||||||
|     .collect(); |     .collect(); | ||||||
| 
 | 
 | ||||||
|   let attributes_loading: TokenStream = data_struct |   let attributes_loading: TokenStream = data_struct | ||||||
| @ -226,7 +222,7 @@ pub fn parse( | |||||||
|     .iter() |     .iter() | ||||||
|     .map(|field| YaSerdeField::new(field.clone())) |     .map(|field| YaSerdeField::new(field.clone())) | ||||||
|     .filter(|field| field.is_attribute()) |     .filter(|field| field.is_attribute()) | ||||||
|     .map(|field| { |     .filter_map(|field| { | ||||||
|       let label = field.get_value_label(); |       let label = field.get_value_label(); | ||||||
|       let label_name = field.renamed_label_without_namespace(); |       let label_name = field.renamed_label_without_namespace(); | ||||||
|       let visitor_label = build_visitor_ident(&label_name, field.get_span(), None); |       let visitor_label = build_visitor_ident(&label_name, field.get_span(), None); | ||||||
| @ -285,14 +281,13 @@ pub fn parse( | |||||||
|         simple_type => visit_simple(simple_type, quote! { = value }), |         simple_type => visit_simple(simple_type, quote! { = value }), | ||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
|     .flatten() |  | ||||||
|     .collect(); |     .collect(); | ||||||
| 
 | 
 | ||||||
|   let set_text: TokenStream = data_struct |   let set_text: TokenStream = data_struct | ||||||
|     .fields |     .fields | ||||||
|     .iter() |     .iter() | ||||||
|     .map(|field| YaSerdeField::new(field.clone())) |     .map(|field| YaSerdeField::new(field.clone())) | ||||||
|     .map(|field| { |     .filter_map(|field| { | ||||||
|       let label = field.get_value_label(); |       let label = field.get_value_label(); | ||||||
| 
 | 
 | ||||||
|       let set_text = |action: &TokenStream| { |       let set_text = |action: &TokenStream| { | ||||||
| @ -318,7 +313,6 @@ pub fn parse( | |||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
|     .flatten() |  | ||||||
|     .collect(); |     .collect(); | ||||||
| 
 | 
 | ||||||
|   let struct_builder: TokenStream = data_struct |   let struct_builder: TokenStream = data_struct | ||||||
| @ -489,7 +483,7 @@ fn build_visitor_ident(label: &str, span: Span, struct_name: Option<&syn::Path>) | |||||||
|   Ident::new( |   Ident::new( | ||||||
|     &format!( |     &format!( | ||||||
|       "__Visitor_{}_{}", |       "__Visitor_{}_{}", | ||||||
|       label.replace(".", "_").to_camel_case(), |       label.replace('.', "_").to_upper_camel_case(), | ||||||
|       struct_id |       struct_id | ||||||
|     ), |     ), | ||||||
|     span, |     span, | ||||||
|  | |||||||
| @ -37,22 +37,22 @@ fn inner_enum_inspector( | |||||||
|       let variant_attrs = YaSerdeAttribute::parse(&variant.attrs); |       let variant_attrs = YaSerdeAttribute::parse(&variant.attrs); | ||||||
| 
 | 
 | ||||||
|       let label = &variant.ident; |       let label = &variant.ident; | ||||||
|       let label_name = build_label_name(&label, &variant_attrs, &root_attributes.default_namespace); |       let label_name = build_label_name(label, &variant_attrs, &root_attributes.default_namespace); | ||||||
| 
 | 
 | ||||||
|       match variant.fields { |       match variant.fields { | ||||||
|         Fields::Unit => Some(quote! { |         Fields::Unit => quote! { | ||||||
|           &#name::#label => { |           &#name::#label => { | ||||||
|             let data_event = ::yaserde::__xml::writer::XmlEvent::characters(#label_name); |             let data_event = ::yaserde::__xml::writer::XmlEvent::characters(#label_name); | ||||||
|             writer.write(data_event).map_err(|e| e.to_string())?; |             writer.write(data_event).map_err(|e| e.to_string())?; | ||||||
|           } |           } | ||||||
|         }), |         }, | ||||||
|         Fields::Named(ref fields) => { |         Fields::Named(ref fields) => { | ||||||
|           let enum_fields: TokenStream = fields |           let enum_fields: TokenStream = fields | ||||||
|             .named |             .named | ||||||
|             .iter() |             .iter() | ||||||
|             .map(|field| YaSerdeField::new(field.clone())) |             .map(|field| YaSerdeField::new(field.clone())) | ||||||
|             .filter(|field| !field.is_attribute()) |             .filter(|field| !field.is_attribute()) | ||||||
|             .map(|field| { |             .filter_map(|field| { | ||||||
|               let field_label = field.label(); |               let field_label = field.label(); | ||||||
| 
 | 
 | ||||||
|               if field.is_text_content() { |               if field.is_text_content() { | ||||||
| @ -124,14 +124,13 @@ fn inner_enum_inspector( | |||||||
|                 Field::FieldOption { .. } => None, |                 Field::FieldOption { .. } => None, | ||||||
|               } |               } | ||||||
|             }) |             }) | ||||||
|             .flatten() |  | ||||||
|             .collect(); |             .collect(); | ||||||
| 
 | 
 | ||||||
|           Some(quote! { |           quote! { | ||||||
|             &#name::#label{..} => { |             &#name::#label{..} => { | ||||||
|               #enum_fields |               #enum_fields | ||||||
|             } |             } | ||||||
|           }) |           } | ||||||
|         } |         } | ||||||
|         Fields::Unnamed(ref fields) => { |         Fields::Unnamed(ref fields) => { | ||||||
|           let enum_fields: TokenStream = fields |           let enum_fields: TokenStream = fields | ||||||
| @ -191,37 +190,35 @@ fn inner_enum_inspector( | |||||||
|                 Field::FieldOption { data_type } => { |                 Field::FieldOption { data_type } => { | ||||||
|                   let write = write_sub_type(*data_type); |                   let write = write_sub_type(*data_type); | ||||||
| 
 | 
 | ||||||
|                   Some(match_field("e! { |                   match_field("e! { | ||||||
|                     if let ::std::option::Option::Some(item) = item { |                     if let ::std::option::Option::Some(item) = item { | ||||||
|                       #write |                       #write | ||||||
|                     } |                     } | ||||||
|                   })) |                   }) | ||||||
|                 } |                 } | ||||||
|                 Field::FieldVec { data_type } => { |                 Field::FieldVec { data_type } => { | ||||||
|                   let write = write_sub_type(*data_type); |                   let write = write_sub_type(*data_type); | ||||||
| 
 | 
 | ||||||
|                   Some(match_field("e! { |                   match_field("e! { | ||||||
|                     for item in item { |                     for item in item { | ||||||
|                       #write |                       #write | ||||||
|                     } |                     } | ||||||
|                   })) |                   }) | ||||||
|                 } |                 } | ||||||
|                 Field::FieldStruct { .. } => Some(write_element(&match_field(&serialize))), |                 Field::FieldStruct { .. } => write_element(&match_field(&serialize)), | ||||||
|                 Field::FieldString => Some(match_field(&write_element(&write_string_chars))), |                 Field::FieldString => match_field(&write_element(&write_string_chars)), | ||||||
|                 _simple_type => Some(match_field(&write_simple_type)), |                 _simple_type => match_field(&write_simple_type), | ||||||
|               } |               } | ||||||
|             }) |             }) | ||||||
|             .flatten() |  | ||||||
|             .collect(); |             .collect(); | ||||||
| 
 | 
 | ||||||
|           Some(quote! { |           quote! { | ||||||
|             &#name::#label{..} => { |             &#name::#label{..} => { | ||||||
|               #enum_fields |               #enum_fields | ||||||
|             } |             } | ||||||
|           }) |           } | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
|     .flatten() |  | ||||||
|     .collect() |     .collect() | ||||||
| } | } | ||||||
|  | |||||||
| @ -142,7 +142,7 @@ pub fn serialize( | |||||||
|     .iter() |     .iter() | ||||||
|     .map(|field| YaSerdeField::new(field.clone())) |     .map(|field| YaSerdeField::new(field.clone())) | ||||||
|     .filter(|field| !field.is_attribute()) |     .filter(|field| !field.is_attribute()) | ||||||
|     .map(|field| { |     .filter_map(|field| { | ||||||
|       let label = field.label(); |       let label = field.label(); | ||||||
|       if field.is_text_content() { |       if field.is_text_content() { | ||||||
|         return match field.get_type() { |         return match field.get_type() { | ||||||
| @ -324,7 +324,6 @@ pub fn serialize( | |||||||
|         }, |         }, | ||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
|     .flatten() |  | ||||||
|     .collect(); |     .collect(); | ||||||
| 
 | 
 | ||||||
|   implement_serializer( |   implement_serializer( | ||||||
|  | |||||||
| @ -8,14 +8,14 @@ pub fn generate_namespaces_definition(attributes: &YaSerdeAttribute) -> TokenStr | |||||||
|     .iter() |     .iter() | ||||||
|     .map(|(prefix, namespace)| { |     .map(|(prefix, namespace)| { | ||||||
|       if attributes.default_namespace.eq(prefix) { |       if attributes.default_namespace.eq(prefix) { | ||||||
|           return Some(quote!( |         quote!( | ||||||
|             .default_ns(#namespace) |           .default_ns(#namespace) | ||||||
|           )); |         ) | ||||||
|  |       } else { | ||||||
|  |         quote!( | ||||||
|  |           .ns(#prefix, #namespace) | ||||||
|  |         ) | ||||||
|       } |       } | ||||||
|       Some(quote!( |  | ||||||
|         .ns(#prefix, #namespace) |  | ||||||
|       )) |  | ||||||
|     }) |     }) | ||||||
|     .flatten() |  | ||||||
|     .collect() |     .collect() | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user