From 5e5e3aaf9d1d91c8266edd13fbdee79d2592c4be Mon Sep 17 00:00:00 2001 From: Dominic Date: Sun, 3 May 2020 23:25:48 +0200 Subject: [PATCH] don't use syn::token module --- gotham_restful_derive/src/from_body.rs | 20 +++++++++++--------- gotham_restful_derive/src/method.rs | 4 ++-- gotham_restful_derive/src/openapi_type.rs | 4 ++-- gotham_restful_derive/src/request_body.rs | 10 +++++----- gotham_restful_derive/src/resource.rs | 10 +++++----- 5 files changed, 25 insertions(+), 23 deletions(-) diff --git a/gotham_restful_derive/src/from_body.rs b/gotham_restful_derive/src/from_body.rs index 5aa962a..c4fab76 100644 --- a/gotham_restful_derive/src/from_body.rs +++ b/gotham_restful_derive/src/from_body.rs @@ -3,17 +3,15 @@ use proc_macro2::TokenStream as TokenStream2; use quote::{format_ident, quote}; use std::cmp::min; use syn::{ - punctuated::Punctuated, + parse_macro_input, spanned::Spanned, - token::Comma, Data, DeriveInput, Error, Field, Fields, Ident, - Type, - parse_macro_input + Type }; pub fn expand_from_body(tokens : TokenStream) -> TokenStream @@ -31,13 +29,17 @@ struct ParsedFields impl ParsedFields { - fn from_named(fields : Punctuated) -> Result + fn from_named(fields : I) -> Result + where + I : Iterator { - let fields = fields.into_iter().map(|field| (field.ident.unwrap(), field.ty)).collect(); + let fields = fields.map(|field| (field.ident.unwrap(), field.ty)).collect(); Ok(Self { fields, named: true }) } - fn from_unnamed(fields : Punctuated) -> Result + fn from_unnamed(fields : I) -> Result + where + I : Iterator { let fields = fields.into_iter().enumerate().map(|(i, field)| (format_ident!("arg{}", i), field.ty)).collect(); Ok(Self { fields, named: false }) @@ -63,8 +65,8 @@ fn expand(tokens : TokenStream) -> Result }.map_err(|span| Error::new(span, "#[derive(FromBody)] only works for enums"))?; let fields = match strukt.fields { - Fields::Named(named) => ParsedFields::from_named(named.named)?, - Fields::Unnamed(unnamed) => ParsedFields::from_unnamed(unnamed.unnamed)?, + Fields::Named(named) => ParsedFields::from_named(named.named.into_iter())?, + Fields::Unnamed(unnamed) => ParsedFields::from_unnamed(unnamed.unnamed.into_iter())?, Fields::Unit => ParsedFields::from_unit()? }; diff --git a/gotham_restful_derive/src/method.rs b/gotham_restful_derive/src/method.rs index db0b8b8..580ea75 100644 --- a/gotham_restful_derive/src/method.rs +++ b/gotham_restful_derive/src/method.rs @@ -4,6 +4,7 @@ use proc_macro::TokenStream; use proc_macro2::{Ident, Span, TokenStream as TokenStream2}; use quote::{format_ident, quote}; use syn::{ + parse_macro_input, spanned::Spanned, Attribute, AttributeArgs, @@ -16,8 +17,7 @@ use syn::{ NestedMeta, PatType, ReturnType, - Type, - parse_macro_input + Type }; use std::str::FromStr; diff --git a/gotham_restful_derive/src/openapi_type.rs b/gotham_restful_derive/src/openapi_type.rs index 355312f..a65e880 100644 --- a/gotham_restful_derive/src/openapi_type.rs +++ b/gotham_restful_derive/src/openapi_type.rs @@ -3,6 +3,7 @@ use proc_macro::TokenStream; use proc_macro2::TokenStream as TokenStream2; use quote::quote; use syn::{ + parse_macro_input, spanned::Spanned, Attribute, AttributeArgs, @@ -19,8 +20,7 @@ use syn::{ Lit, Meta, NestedMeta, - Variant, - parse_macro_input + Variant }; pub fn expand(tokens : TokenStream) -> TokenStream diff --git a/gotham_restful_derive/src/request_body.rs b/gotham_restful_derive/src/request_body.rs index f561a3a..ea6ae4d 100644 --- a/gotham_restful_derive/src/request_body.rs +++ b/gotham_restful_derive/src/request_body.rs @@ -4,19 +4,19 @@ use proc_macro2::TokenStream as TokenStream2; use quote::quote; use std::iter; use syn::{ + parenthesized, + parse_macro_input, parse::{Parse, ParseStream, Result as SynResult}, punctuated::Punctuated, - token::Comma, DeriveInput, Error, Generics, Ident, Path, - parenthesized, - parse_macro_input + Token }; -struct MimeList(Punctuated); +struct MimeList(Punctuated); impl Parse for MimeList { @@ -24,7 +24,7 @@ impl Parse for MimeList { let content; let _paren = parenthesized!(content in input); - let list : Punctuated = Punctuated::parse_separated_nonempty(&content)?; + let list = Punctuated::parse_separated_nonempty(&content)?; Ok(Self(list)) } } diff --git a/gotham_restful_derive/src/resource.rs b/gotham_restful_derive/src/resource.rs index e618ebb..eade96e 100644 --- a/gotham_restful_derive/src/resource.rs +++ b/gotham_restful_derive/src/resource.rs @@ -6,18 +6,18 @@ use proc_macro::TokenStream; use proc_macro2::TokenStream as TokenStream2; use quote::quote; use syn::{ + parenthesized, + parse_macro_input, parse::{Parse, ParseStream}, punctuated::Punctuated, - token::Comma, DeriveInput, Error, Ident, - parenthesized, - parse_macro_input + Token }; use std::{iter, str::FromStr}; -struct MethodList(Punctuated); +struct MethodList(Punctuated); impl Parse for MethodList { @@ -25,7 +25,7 @@ impl Parse for MethodList { let content; let _paren = parenthesized!(content in input); - let list : Punctuated = Punctuated::parse_separated_nonempty(&content)?; + let list = Punctuated::parse_separated_nonempty(&content)?; Ok(Self(list)) } }