Skip to content

Commit 8850cbb

Browse files
authored
Merge pull request #510 from Fishrock123/request-response-impl-asref-and-into
Request+Response AsRef and Into impls for inner context access
2 parents 37c1762 + 2024ed2 commit 8850cbb

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

src/request.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,18 @@ impl<State> Request<State> {
308308
}
309309
}
310310

311+
impl<State> AsMut<http::Request> for Request<State> {
312+
fn as_mut(&mut self) -> &mut http::Request {
313+
&mut self.request
314+
}
315+
}
316+
317+
impl<State> AsRef<http::Request> for Request<State> {
318+
fn as_ref(&self) -> &http::Request {
319+
&self.request
320+
}
321+
}
322+
311323
impl<State> Read for Request<State> {
312324
fn poll_read(
313325
mut self: Pin<&mut Self>,
@@ -318,6 +330,12 @@ impl<State> Read for Request<State> {
318330
}
319331
}
320332

333+
impl<State> Into<http::Request> for Request<State> {
334+
fn into(self) -> http::Request {
335+
self.request
336+
}
337+
}
338+
321339
// NOTE: From cannot be implemented for this conversion because `State` needs to
322340
// be constrained by a type.
323341
impl<State: Send + Sync + 'static> Into<Response> for Request<State> {

src/response.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,18 @@ impl Response {
262262
}
263263
}
264264

265+
impl AsMut<http::Response> for Response {
266+
fn as_mut(&mut self) -> &mut http::Response {
267+
&mut self.res
268+
}
269+
}
270+
271+
impl AsRef<http::Response> for Response {
272+
fn as_ref(&self) -> &http::Response {
273+
&self.res
274+
}
275+
}
276+
265277
impl Into<http::Response> for Response {
266278
fn into(self) -> http_types::Response {
267279
self.res

0 commit comments

Comments
 (0)