Add ability to feature gate fields in ruma_api! macro
This commit is contained in:
parent
6f69a6fe76
commit
605680530b
@ -168,8 +168,11 @@ impl Request {
|
|||||||
let field_name =
|
let field_name =
|
||||||
field.ident.as_ref().expect("expected field to have an identifier");
|
field.ident.as_ref().expect("expected field to have an identifier");
|
||||||
let span = field.span();
|
let span = field.span();
|
||||||
|
let cfg_attrs =
|
||||||
|
field.attrs.iter().filter(|a| a.path.is_ident("cfg")).collect::<Vec<_>>();
|
||||||
|
|
||||||
quote_spanned! {span=>
|
quote_spanned! {span=>
|
||||||
|
#( #cfg_attrs )*
|
||||||
#field_name: #src.#field_name
|
#field_name: #src.#field_name
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -43,10 +43,13 @@ impl Response {
|
|||||||
let field = response_field.field();
|
let field = response_field.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();
|
||||||
|
let cfg_attrs =
|
||||||
|
field.attrs.iter().filter(|a| a.path.is_ident("cfg")).collect::<Vec<_>>();
|
||||||
|
|
||||||
match response_field {
|
match response_field {
|
||||||
ResponseField::Body(_) => {
|
ResponseField::Body(_) => {
|
||||||
quote_spanned! {span=>
|
quote_spanned! {span=>
|
||||||
|
#( #cfg_attrs )*
|
||||||
#field_name: response_body.#field_name
|
#field_name: response_body.#field_name
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -114,8 +117,11 @@ impl Response {
|
|||||||
let field_name =
|
let field_name =
|
||||||
field.ident.as_ref().expect("expected field to have an identifier");
|
field.ident.as_ref().expect("expected field to have an identifier");
|
||||||
let span = field.span();
|
let span = field.span();
|
||||||
|
let cfg_attrs =
|
||||||
|
field.attrs.iter().filter(|a| a.path.is_ident("cfg")).collect::<Vec<_>>();
|
||||||
|
|
||||||
Some(quote_spanned! {span=>
|
Some(quote_spanned! {span=>
|
||||||
|
#( #cfg_attrs )*
|
||||||
#field_name: response.#field_name
|
#field_name: response.#field_name
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user