diff --git a/ruma-api-macros/src/api/request.rs b/ruma-api-macros/src/api/request.rs index a4c271a7..5028724d 100644 --- a/ruma-api-macros/src/api/request.rs +++ b/ruma-api-macros/src/api/request.rs @@ -144,6 +144,11 @@ impl From> for Request { Meta::Word(ident) => { match &ident.to_string()[..] { "body" => { + assert!( + !has_newtype_body, + "ruma_api! body attribute can only be used once per request definition" + ); + has_newtype_body = true; field_kind = RequestFieldKind::NewtypeBody; } diff --git a/ruma-api-macros/src/api/response.rs b/ruma-api-macros/src/api/response.rs index b0ad5165..8bf74528 100644 --- a/ruma-api-macros/src/api/response.rs +++ b/ruma-api-macros/src/api/response.rs @@ -116,6 +116,10 @@ impl From> for Response { ident == "body", "ruma_api! single-word attribute on responses must be: body" ); + assert!( + !has_newtype_body, + "ruma_api! body attribute can only be used once per response definition" + ); has_newtype_body = true; field_kind = ResponseFieldKind::NewtypeBody;