diff --git a/src/server/request.rs b/src/server/request.rs index 3ea817a9..c761eddc 100644 --- a/src/server/request.rs +++ b/src/server/request.rs @@ -32,7 +32,6 @@ pub struct Request<'a> { impl<'a> Request<'a> { - /// Create a new Request, reading the StartLine and Headers so they are /// immediately useful. pub fn new(mut stream: &'a mut (Reader + 'a), addr: SocketAddr) -> HttpResult> { @@ -64,6 +63,14 @@ impl<'a> Request<'a> { body: body }) } + + /// Deconstruct a Request into its constituent parts. + pub fn deconstruct(self) -> (SocketAddr, Method, Headers, + RequestUri, HttpVersion, + HttpReader<&'a mut (Reader + 'a)>,) { + (self.remote_addr, self.method, self.headers, + self.uri, self.version, self.body) + } } impl<'a> Reader for Request<'a> {