Simplify ruma_api_macros::api::strip_serde_attrs
This commit is contained in:
parent
02e9ff2ae6
commit
69ee18e0a9
@ -5,7 +5,7 @@ use quote::{quote, ToTokens};
|
|||||||
use syn::{
|
use syn::{
|
||||||
braced,
|
braced,
|
||||||
parse::{Parse, ParseStream, Result},
|
parse::{Parse, ParseStream, Result},
|
||||||
Field, FieldValue, Ident, Meta, Token,
|
Field, FieldValue, Ident, Token,
|
||||||
};
|
};
|
||||||
|
|
||||||
mod attribute;
|
mod attribute;
|
||||||
@ -18,25 +18,9 @@ use self::{metadata::Metadata, request::Request, response::Response};
|
|||||||
/// Removes `serde` attributes from struct fields.
|
/// Removes `serde` attributes from struct fields.
|
||||||
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
|
||||||
field.attrs = field
|
|
||||||
.attrs
|
.attrs
|
||||||
.into_iter()
|
.retain(|attr| attr.path.segments.len() != 1 || attr.path.segments[0].ident != "serde");
|
||||||
.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();
|
|
||||||
|
|
||||||
field
|
field
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user