From 69ee18e0a92c883bf9dd1221e5a7160e52b7f838 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Sat, 16 Nov 2019 14:05:23 +0100 Subject: [PATCH] Simplify ruma_api_macros::api::strip_serde_attrs --- ruma-api-macros/src/api/mod.rs | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/ruma-api-macros/src/api/mod.rs b/ruma-api-macros/src/api/mod.rs index 8a92c012..19afe859 100644 --- a/ruma-api-macros/src/api/mod.rs +++ b/ruma-api-macros/src/api/mod.rs @@ -5,7 +5,7 @@ use quote::{quote, ToTokens}; use syn::{ braced, parse::{Parse, ParseStream, Result}, - Field, FieldValue, Ident, Meta, Token, + Field, FieldValue, Ident, Token, }; mod attribute; @@ -18,25 +18,9 @@ use self::{metadata::Metadata, request::Request, response::Response}; /// Removes `serde` attributes from struct fields. pub fn strip_serde_attrs(field: &Field) -> Field { let mut field = field.clone(); - - field.attrs = field + field .attrs - .into_iter() - .filter(|attr| { - let meta = attr - .parse_meta() - .expect("ruma_api! could not parse field attributes"); - - match meta { - Meta::List(meta_list) => { - let segments = &meta_list.path.segments; - segments.len() != 1 || segments[0].ident != "serde" - } - _ => true, - } - }) - .collect(); - + .retain(|attr| attr.path.segments.len() != 1 || attr.path.segments[0].ident != "serde"); field }