diff --git a/ruma-api-macros/src/api/request.rs b/ruma-api-macros/src/api/request.rs index 3e6395b6..95e3ef0c 100644 --- a/ruma-api-macros/src/api/request.rs +++ b/ruma-api-macros/src/api/request.rs @@ -168,8 +168,11 @@ impl Request { let field_name = field.ident.as_ref().expect("expected field to have an identifier"); let span = field.span(); + let cfg_attrs = + field.attrs.iter().filter(|a| a.path.is_ident("cfg")).collect::>(); quote_spanned! {span=> + #( #cfg_attrs )* #field_name: #src.#field_name } }) diff --git a/ruma-api-macros/src/api/response.rs b/ruma-api-macros/src/api/response.rs index 78330717..7c9f64b7 100644 --- a/ruma-api-macros/src/api/response.rs +++ b/ruma-api-macros/src/api/response.rs @@ -43,10 +43,13 @@ impl Response { let field = response_field.field(); let field_name = field.ident.as_ref().expect("expected field to have an identifier"); let span = field.span(); + let cfg_attrs = + field.attrs.iter().filter(|a| a.path.is_ident("cfg")).collect::>(); match response_field { ResponseField::Body(_) => { quote_spanned! {span=> + #( #cfg_attrs )* #field_name: response_body.#field_name } } @@ -114,8 +117,11 @@ impl Response { let field_name = field.ident.as_ref().expect("expected field to have an identifier"); let span = field.span(); + let cfg_attrs = + field.attrs.iter().filter(|a| a.path.is_ident("cfg")).collect::>(); Some(quote_spanned! {span=> + #( #cfg_attrs )* #field_name: response.#field_name }) } else {