ruma_client_api: Simplify Response::init_fields
This commit is contained in:
parent
af7333203a
commit
b6394a32b7
@ -35,36 +35,30 @@ impl Response {
|
|||||||
|
|
||||||
/// Produces code for a response struct initializer.
|
/// Produces code for a response struct initializer.
|
||||||
pub fn init_fields(&self) -> TokenStream {
|
pub fn init_fields(&self) -> TokenStream {
|
||||||
let fields = self.fields.iter().map(|response_field| match response_field {
|
let fields = self.fields.iter().map(|response_field| {
|
||||||
ResponseField::Body(field) => {
|
let field = response_field.field();
|
||||||
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();
|
|
||||||
|
|
||||||
quote_spanned! {span=>
|
match response_field {
|
||||||
#field_name: response_body.#field_name
|
ResponseField::Body(_) => {
|
||||||
|
quote_spanned! {span=>
|
||||||
|
#field_name: response_body.#field_name
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
ResponseField::Header(_, header_name) => {
|
||||||
ResponseField::Header(field, header_name) => {
|
quote_spanned! {span=>
|
||||||
let field_name =
|
#field_name: headers.remove(ruma_api::exports::http::header::#header_name)
|
||||||
field.ident.as_ref().expect("expected field to have an identifier");
|
.expect("response missing expected header")
|
||||||
let span = field.span();
|
.to_str()
|
||||||
|
.expect("failed to convert HeaderValue to str")
|
||||||
quote_spanned! {span=>
|
.to_owned()
|
||||||
#field_name: headers.remove(ruma_api::exports::http::header::#header_name)
|
}
|
||||||
.expect("response missing expected header")
|
|
||||||
.to_str()
|
|
||||||
.expect("failed to convert HeaderValue to str")
|
|
||||||
.to_owned()
|
|
||||||
}
|
}
|
||||||
}
|
ResponseField::NewtypeBody(_) => {
|
||||||
ResponseField::NewtypeBody(field) => {
|
quote_spanned! {span=>
|
||||||
let field_name =
|
#field_name: response_body.0
|
||||||
field.ident.as_ref().expect("expected field to have an identifier");
|
}
|
||||||
let span = field.span();
|
|
||||||
|
|
||||||
quote_spanned! {span=>
|
|
||||||
#field_name: response_body.0
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user