From b610a725e80ea66129a497f414b84dfc697cd275 Mon Sep 17 00:00:00 2001 From: gnieto Date: Sat, 8 May 2021 20:22:06 +0200 Subject: [PATCH] Make `try_into_http_response` more safe Remove `expect`s and `unwrap`s from `try_into_http_response`. --- crates/ruma-api-macros/src/api/response/outgoing.rs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/crates/ruma-api-macros/src/api/response/outgoing.rs b/crates/ruma-api-macros/src/api/response/outgoing.rs index 1267e66e..f3adc6c5 100644 --- a/crates/ruma-api-macros/src/api/response/outgoing.rs +++ b/crates/ruma-api-macros/src/api/response/outgoing.rs @@ -78,14 +78,11 @@ impl Response { let mut resp_builder = #http::Response::builder() .header(#http::header::CONTENT_TYPE, "application/json"); - let mut headers = resp_builder - .headers_mut() - .expect("`http::ResponseBuilder` is in unusable state"); - #(#serialize_response_headers)* + if let Some(mut headers) = resp_builder.headers_mut() { + #(#serialize_response_headers)* + } - // This cannot fail because we parse each header value checking for errors as - // each value is inserted and we only allow keys from the `http::header` module. - ::std::result::Result::Ok(resp_builder.body(#body).unwrap()) + ::std::result::Result::Ok(resp_builder.body(#body)?) } } }