From d02c24e1ee581cd21fe9df816aed7fc9dabe3eca Mon Sep 17 00:00:00 2001 From: Jonathan Reem Date: Mon, 8 Sep 2014 17:09:52 -0700 Subject: [PATCH] Provide Response::::deconstruct to deconstruct a Response. This allows downstream frameworks by-value access to these fields, letting them create their own Response abstractions out of hyper's Response. --- src/server/response.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/server/response.rs b/src/server/response.rs index 7ac8103290..ab3dc81e00 100644 --- a/src/server/response.rs +++ b/src/server/response.rs @@ -44,6 +44,19 @@ impl Response { /// The headers of this response. pub fn headers(&self) -> &header::Headers { &self.headers } + + /// Construct a Response from its constituent parts. + pub fn construct(version: version::HttpVersion, + body: BufferedWriter, + status: status::StatusCode, + headers: header::Headers) -> Response { + Response { + status: status, + version: version, + body: body, + headers: headers + } + } } impl Response { @@ -89,6 +102,11 @@ impl Response { /// Get a mutable reference to the Headers. pub fn headers_mut(&mut self) -> &mut header::Headers { &mut self.headers } + + /// Deconstruct this Response into its constituent parts. + pub fn deconstruct(self) -> (version::HttpVersion, BufferedWriter, status::StatusCode, header::Headers) { + (self.version, self.body, self.status, self.headers) + } } impl Response {