Configure rustfmt for nested imports, re-run 'cargo fmt'
This commit is contained in:
		
							parent
							
								
									3e7f7a987b
								
							
						
					
					
						commit
						0b3dd48c3e
					
				
							
								
								
									
										1
									
								
								.rustfmt.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.rustfmt.toml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | merge_imports = true | ||||||
| @ -1,5 +1,4 @@ | |||||||
| use syn::punctuated::Pair; | use syn::{punctuated::Pair, Expr, FieldValue, Lit, Member}; | ||||||
| use syn::{Expr, FieldValue, Lit, Member}; |  | ||||||
| 
 | 
 | ||||||
| pub struct Metadata { | pub struct Metadata { | ||||||
|     pub description: String, |     pub description: String, | ||||||
|  | |||||||
| @ -1,21 +1,26 @@ | |||||||
| use proc_macro2::{Span, TokenStream}; | use proc_macro2::{Span, TokenStream}; | ||||||
| use quote::{ToTokens, TokenStreamExt}; | use quote::{ToTokens, TokenStreamExt}; | ||||||
| use syn::{braced, Field, FieldValue, Ident, Meta, Token}; | use syn::{ | ||||||
| use syn::parse::{Parse, ParseStream, Result}; |     braced, | ||||||
|  |     parse::{Parse, ParseStream, Result}, | ||||||
|  |     Field, FieldValue, Ident, Meta, Token, | ||||||
|  | }; | ||||||
| 
 | 
 | ||||||
| mod metadata; | mod metadata; | ||||||
| mod request; | mod request; | ||||||
| mod response; | mod response; | ||||||
| 
 | 
 | ||||||
| use self::metadata::Metadata; | use self::{metadata::Metadata, request::Request, response::Response}; | ||||||
| use self::request::Request; |  | ||||||
| use self::response::Response; |  | ||||||
| 
 | 
 | ||||||
| pub fn strip_serde_attrs(field: &Field) -> Field { | pub fn strip_serde_attrs(field: &Field) -> Field { | ||||||
|     let mut field = field.clone(); |     let mut field = field.clone(); | ||||||
| 
 | 
 | ||||||
|     field.attrs = field.attrs.into_iter().filter(|attr| { |     field.attrs = field | ||||||
|         let meta = attr.interpret_meta() |         .attrs | ||||||
|  |         .into_iter() | ||||||
|  |         .filter(|attr| { | ||||||
|  |             let meta = attr | ||||||
|  |                 .interpret_meta() | ||||||
|                 .expect("ruma_api! could not parse field attributes"); |                 .expect("ruma_api! could not parse field attributes"); | ||||||
| 
 | 
 | ||||||
|             let meta_list = match meta { |             let meta_list = match meta { | ||||||
| @ -28,7 +33,8 @@ pub fn strip_serde_attrs(field: &Field) -> Field { | |||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             true |             true | ||||||
|     }).collect(); |         }) | ||||||
|  |         .collect(); | ||||||
| 
 | 
 | ||||||
|     field |     field | ||||||
| } | } | ||||||
| @ -200,7 +206,10 @@ impl ToTokens for Api { | |||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         let create_http_request = if let Some(field) = self.request.newtype_body_field() { |         let create_http_request = if let Some(field) = self.request.newtype_body_field() { | ||||||
|             let field_name = field.ident.as_ref().expect("expected field to have an identifier"); |             let field_name = field | ||||||
|  |                 .ident | ||||||
|  |                 .as_ref() | ||||||
|  |                 .expect("expected field to have an identifier"); | ||||||
| 
 | 
 | ||||||
|             quote! { |             quote! { | ||||||
|                 let request_body = RequestBody(request.#field_name); |                 let request_body = RequestBody(request.#field_name); | ||||||
| @ -239,7 +248,10 @@ impl ToTokens for Api { | |||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         let parse_request_body = if let Some(field) = self.request.newtype_body_field() { |         let parse_request_body = if let Some(field) = self.request.newtype_body_field() { | ||||||
|             let field_name = field.ident.as_ref().expect("expected field to have an identifier"); |             let field_name = field | ||||||
|  |                 .ident | ||||||
|  |                 .as_ref() | ||||||
|  |                 .expect("expected field to have an identifier"); | ||||||
| 
 | 
 | ||||||
|             quote! { |             quote! { | ||||||
|                 #field_name: request_body, |                 #field_name: request_body, | ||||||
|  | |||||||
| @ -1,7 +1,6 @@ | |||||||
| use proc_macro2::{Span, TokenStream}; | use proc_macro2::{Span, TokenStream}; | ||||||
| use quote::{ToTokens, TokenStreamExt}; | use quote::{ToTokens, TokenStreamExt}; | ||||||
| use syn::spanned::Spanned; | use syn::{spanned::Spanned, Field, Ident, Lit, Meta, NestedMeta}; | ||||||
| use syn::{Field, Ident, Lit, Meta, NestedMeta}; |  | ||||||
| 
 | 
 | ||||||
| use api::strip_serde_attrs; | use api::strip_serde_attrs; | ||||||
| 
 | 
 | ||||||
| @ -81,10 +80,13 @@ impl Request { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     pub fn path_field(&self, name: &str) -> Option<&Field> { |     pub fn path_field(&self, name: &str) -> Option<&Field> { | ||||||
|         self.fields.iter() |         self.fields | ||||||
|  |             .iter() | ||||||
|             .flat_map(|f| f.field_(RequestFieldKind::Path)) |             .flat_map(|f| f.field_(RequestFieldKind::Path)) | ||||||
|             .find(|field| { |             .find(|field| { | ||||||
|                 field.ident.as_ref() |                 field | ||||||
|  |                     .ident | ||||||
|  |                     .as_ref() | ||||||
|                     .expect("expected field to have an identifier") |                     .expect("expected field to have an identifier") | ||||||
|                     .to_string() |                     .to_string() | ||||||
|                     == name |                     == name | ||||||
| @ -220,9 +222,7 @@ impl From<Vec<Field>> for Request { | |||||||
|             RequestField::new(field_kind, field, header) |             RequestField::new(field_kind, field, header) | ||||||
|         }).collect(); |         }).collect(); | ||||||
| 
 | 
 | ||||||
|         Request { |         Request { fields } | ||||||
|             fields, |  | ||||||
|         } |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -264,14 +264,15 @@ impl ToTokens for Request { | |||||||
|                 struct RequestBody(#ty); |                 struct RequestBody(#ty); | ||||||
|             } |             } | ||||||
|         } else if self.has_body_fields() { |         } else if self.has_body_fields() { | ||||||
|             let fields = self.fields.iter().filter_map(|request_field| { |             let fields = self | ||||||
|                 match *request_field { |                 .fields | ||||||
|  |                 .iter() | ||||||
|  |                 .filter_map(|request_field| match *request_field { | ||||||
|                     RequestField::Body(ref field) => { |                     RequestField::Body(ref field) => { | ||||||
|                         let span = field.span(); |                         let span = field.span(); | ||||||
|                         Some(quote_spanned!(span=> #field)) |                         Some(quote_spanned!(span=> #field)) | ||||||
|                     } |                     } | ||||||
|                     _ => None, |                     _ => None, | ||||||
|                 } |  | ||||||
|                 }); |                 }); | ||||||
| 
 | 
 | ||||||
|             quote! { |             quote! { | ||||||
| @ -286,15 +287,16 @@ impl ToTokens for Request { | |||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         let request_path_struct = if self.has_path_fields() { |         let request_path_struct = if self.has_path_fields() { | ||||||
|             let fields = self.fields.iter().filter_map(|request_field| { |             let fields = self | ||||||
|                 match *request_field { |                 .fields | ||||||
|  |                 .iter() | ||||||
|  |                 .filter_map(|request_field| match *request_field { | ||||||
|                     RequestField::Path(ref field) => { |                     RequestField::Path(ref field) => { | ||||||
|                         let span = field.span(); |                         let span = field.span(); | ||||||
| 
 | 
 | ||||||
|                         Some(quote_spanned!(span=> #field)) |                         Some(quote_spanned!(span=> #field)) | ||||||
|                     } |                     } | ||||||
|                     _ => None, |                     _ => None, | ||||||
|                 } |  | ||||||
|                 }); |                 }); | ||||||
| 
 | 
 | ||||||
|             quote! { |             quote! { | ||||||
| @ -309,14 +311,15 @@ impl ToTokens for Request { | |||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         let request_query_struct = if self.has_query_fields() { |         let request_query_struct = if self.has_query_fields() { | ||||||
|             let fields = self.fields.iter().filter_map(|request_field| { |             let fields = self | ||||||
|                 match *request_field { |                 .fields | ||||||
|  |                 .iter() | ||||||
|  |                 .filter_map(|request_field| match *request_field { | ||||||
|                     RequestField::Query(ref field) => { |                     RequestField::Query(ref field) => { | ||||||
|                         let span = field.span(); |                         let span = field.span(); | ||||||
|                         Some(quote_spanned!(span=> #field)) |                         Some(quote_spanned!(span=> #field)) | ||||||
|                     } |                     } | ||||||
|                     _ => None, |                     _ => None, | ||||||
|                 } |  | ||||||
|                 }); |                 }); | ||||||
| 
 | 
 | ||||||
|             quote! { |             quote! { | ||||||
| @ -352,7 +355,9 @@ impl RequestField { | |||||||
|     fn new(kind: RequestFieldKind, field: Field, header: Option<String>) -> RequestField { |     fn new(kind: RequestFieldKind, field: Field, header: Option<String>) -> RequestField { | ||||||
|         match kind { |         match kind { | ||||||
|             RequestFieldKind::Body => RequestField::Body(field), |             RequestFieldKind::Body => RequestField::Body(field), | ||||||
|             RequestFieldKind::Header => RequestField::Header(field, header.expect("missing header name")), |             RequestFieldKind::Header => { | ||||||
|  |                 RequestField::Header(field, header.expect("missing header name")) | ||||||
|  |             } | ||||||
|             RequestFieldKind::NewtypeBody => RequestField::NewtypeBody(field), |             RequestFieldKind::NewtypeBody => RequestField::NewtypeBody(field), | ||||||
|             RequestFieldKind::Path => RequestField::Path(field), |             RequestFieldKind::Path => RequestField::Path(field), | ||||||
|             RequestFieldKind::Query => RequestField::Query(field), |             RequestFieldKind::Query => RequestField::Query(field), | ||||||
|  | |||||||
| @ -1,7 +1,6 @@ | |||||||
| use proc_macro2::{Span, TokenStream}; | use proc_macro2::{Span, TokenStream}; | ||||||
| use quote::{ToTokens, TokenStreamExt}; | use quote::{ToTokens, TokenStreamExt}; | ||||||
| use syn::spanned::Spanned; | use syn::{spanned::Spanned, Field, Ident, Lit, Meta, NestedMeta}; | ||||||
| use syn::{Field, Ident, Lit, Meta, NestedMeta}; |  | ||||||
| 
 | 
 | ||||||
| use api::strip_serde_attrs; | use api::strip_serde_attrs; | ||||||
| 
 | 
 | ||||||
| @ -27,8 +26,10 @@ impl Response { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     pub fn init_fields(&self) -> TokenStream { |     pub fn init_fields(&self) -> TokenStream { | ||||||
|         let fields = self.fields.iter().map(|response_field| { |         let fields = self | ||||||
|             match *response_field { |             .fields | ||||||
|  |             .iter() | ||||||
|  |             .map(|response_field| match *response_field { | ||||||
|                 ResponseField::Body(ref field) => { |                 ResponseField::Body(ref field) => { | ||||||
|                     let field_name = field |                     let field_name = field | ||||||
|                         .ident |                         .ident | ||||||
| @ -67,7 +68,6 @@ impl Response { | |||||||
|                         #field_name: response_body |                         #field_name: response_body | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             } |  | ||||||
|             }); |             }); | ||||||
| 
 | 
 | ||||||
|         quote! { |         quote! { | ||||||
| @ -78,7 +78,10 @@ impl Response { | |||||||
|     pub fn apply_header_fields(&self) -> TokenStream { |     pub fn apply_header_fields(&self) -> TokenStream { | ||||||
|         let header_calls = self.fields.iter().filter_map(|response_field| { |         let header_calls = self.fields.iter().filter_map(|response_field| { | ||||||
|             if let ResponseField::Header(ref field, ref header) = *response_field { |             if let ResponseField::Header(ref field, ref header) = *response_field { | ||||||
|                 let field_name = field.ident.as_ref().expect("expected field to have an identifier"); |                 let field_name = field | ||||||
|  |                     .ident | ||||||
|  |                     .as_ref() | ||||||
|  |                     .expect("expected field to have an identifier"); | ||||||
|                 let header_name = Ident::new(header.as_ref(), Span::call_site()); |                 let header_name = Ident::new(header.as_ref(), Span::call_site()); | ||||||
|                 let span = field.span(); |                 let span = field.span(); | ||||||
| 
 | 
 | ||||||
| @ -97,13 +100,19 @@ impl Response { | |||||||
| 
 | 
 | ||||||
|     pub fn to_body(&self) -> TokenStream { |     pub fn to_body(&self) -> TokenStream { | ||||||
|         if let Some(ref field) = self.newtype_body_field() { |         if let Some(ref field) = self.newtype_body_field() { | ||||||
|             let field_name = field.ident.as_ref().expect("expected field to have an identifier"); |             let field_name = field | ||||||
|  |                 .ident | ||||||
|  |                 .as_ref() | ||||||
|  |                 .expect("expected field to have an identifier"); | ||||||
|             let span = field.span(); |             let span = field.span(); | ||||||
|             quote_spanned!(span=> response.#field_name) |             quote_spanned!(span=> response.#field_name) | ||||||
|         } else { |         } else { | ||||||
|             let fields = self.fields.iter().filter_map(|response_field| { |             let fields = self.fields.iter().filter_map(|response_field| { | ||||||
|                 if let ResponseField::Body(ref field) = *response_field { |                 if let ResponseField::Body(ref field) = *response_field { | ||||||
|                     let field_name = field.ident.as_ref().expect("expected field to have an identifier"); |                     let field_name = field | ||||||
|  |                         .ident | ||||||
|  |                         .as_ref() | ||||||
|  |                         .expect("expected field to have an identifier"); | ||||||
|                     let span = field.span(); |                     let span = field.span(); | ||||||
| 
 | 
 | ||||||
|                     Some(quote_spanned! {span=> |                     Some(quote_spanned! {span=> | ||||||
| @ -126,7 +135,6 @@ impl Response { | |||||||
|         for response_field in self.fields.iter() { |         for response_field in self.fields.iter() { | ||||||
|             match *response_field { |             match *response_field { | ||||||
|                 ResponseField::NewtypeBody(ref field) => { |                 ResponseField::NewtypeBody(ref field) => { | ||||||
| 
 |  | ||||||
|                     return Some(field); |                     return Some(field); | ||||||
|                 } |                 } | ||||||
|                 _ => continue, |                 _ => continue, | ||||||
| @ -135,7 +143,6 @@ impl Response { | |||||||
| 
 | 
 | ||||||
|         None |         None | ||||||
|     } |     } | ||||||
| 
 |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| impl From<Vec<Field>> for Response { | impl From<Vec<Field>> for Response { | ||||||
| @ -210,9 +217,7 @@ impl From<Vec<Field>> for Response { | |||||||
|             } |             } | ||||||
|         }).collect(); |         }).collect(); | ||||||
| 
 | 
 | ||||||
|         Response { |         Response { fields } | ||||||
|             fields, |  | ||||||
|         } |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -254,14 +259,15 @@ impl ToTokens for Response { | |||||||
|                 struct ResponseBody(#ty); |                 struct ResponseBody(#ty); | ||||||
|             } |             } | ||||||
|         } else if self.has_body_fields() { |         } else if self.has_body_fields() { | ||||||
|             let fields = self.fields.iter().filter_map(|response_field| { |             let fields = self | ||||||
|                 match *response_field { |                 .fields | ||||||
|  |                 .iter() | ||||||
|  |                 .filter_map(|response_field| match *response_field { | ||||||
|                     ResponseField::Body(ref field) => { |                     ResponseField::Body(ref field) => { | ||||||
|                         let span = field.span(); |                         let span = field.span(); | ||||||
|                         Some(quote_spanned!(span=> #field)) |                         Some(quote_spanned!(span=> #field)) | ||||||
|                     } |                     } | ||||||
|                     _ => None, |                     _ => None, | ||||||
|                 } |  | ||||||
|                 }); |                 }); | ||||||
| 
 | 
 | ||||||
|             quote! { |             quote! { | ||||||
|  | |||||||
| @ -8,7 +8,8 @@ | |||||||
| 
 | 
 | ||||||
| extern crate proc_macro; | extern crate proc_macro; | ||||||
| extern crate proc_macro2; | extern crate proc_macro2; | ||||||
| #[macro_use] extern crate quote; | #[macro_use] | ||||||
|  | extern crate quote; | ||||||
| extern crate ruma_api; | extern crate ruma_api; | ||||||
| extern crate syn; | extern crate syn; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -6,7 +6,8 @@ extern crate hyper; | |||||||
| extern crate ruma_api; | extern crate ruma_api; | ||||||
| extern crate ruma_api_macros; | extern crate ruma_api_macros; | ||||||
| extern crate serde; | extern crate serde; | ||||||
| #[macro_use] extern crate serde_derive; | #[macro_use] | ||||||
|  | extern crate serde_derive; | ||||||
| extern crate serde_json; | extern crate serde_json; | ||||||
| extern crate serde_urlencoded; | extern crate serde_urlencoded; | ||||||
| extern crate url; | extern crate url; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user