Skip to content

Commit 7d788b2

Browse files
committed
Revert "Response: add Error storage, retrieval, conversion"
This reverts commit 6e04e91.
1 parent e5a726f commit 7d788b2

File tree

2 files changed

+4
-91
lines changed

2 files changed

+4
-91
lines changed

src/response.rs

Lines changed: 3 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use crate::headers::{
1515
};
1616
use crate::mime::Mime;
1717
use crate::trailers::{self, Trailers};
18-
use crate::{Body, Error, Extensions, StatusCode, Version};
18+
use crate::{Body, Extensions, StatusCode, Version};
1919

2020
cfg_unstable! {
2121
use crate::upgrade;
@@ -50,7 +50,6 @@ pin_project_lite::pin_project! {
5050
ext: Extensions,
5151
local_addr: Option<String>,
5252
peer_addr: Option<String>,
53-
error: Option<Error>,
5453
}
5554
}
5655

@@ -86,7 +85,6 @@ pin_project_lite::pin_project! {
8685
ext: Extensions,
8786
local_addr: Option<String>,
8887
peer_addr: Option<String>,
89-
error: Option<Error>,
9088
}
9189
}
9290

@@ -113,7 +111,6 @@ impl Response {
113111
ext: Extensions::new(),
114112
peer_addr: None,
115113
local_addr: None,
116-
error: None,
117114
}
118115
}
119116

@@ -143,7 +140,6 @@ impl Response {
143140
ext: Extensions::new(),
144141
peer_addr: None,
145142
local_addr: None,
146-
error: None,
147143
}
148144
}
149145

@@ -473,16 +469,6 @@ impl Response {
473469
self.body.is_empty()
474470
}
475471

476-
/// Returns an optional reference to the `Error` if the response was created from one, or else `None`.
477-
pub fn error(&self) -> Option<&Error> {
478-
self.error.as_ref()
479-
}
480-
481-
/// Takes the `Error` from the response if one exists, replacing it with `None`.
482-
pub fn take_error(&mut self) -> Option<Error> {
483-
self.error.take()
484-
}
485-
486472
/// Get the HTTP version, if one has been set.
487473
///
488474
/// # Examples
@@ -655,10 +641,8 @@ impl Response {
655641
}
656642

657643
impl Clone for Response {
658-
/// Clone the response, with some exceptions:
659-
/// - The body is resolved to `Body::empty()`.
660-
/// - Any attached extensions are not cloned.
661-
/// - Any attached error is not cloned.
644+
/// Clone the response, resolving the body to `Body::empty()` and removing
645+
/// extensions.
662646
fn clone(&self) -> Self {
663647
Self {
664648
status: self.status,
@@ -677,7 +661,6 @@ impl Clone for Response {
677661
ext: Extensions::new(),
678662
peer_addr: self.peer_addr.clone(),
679663
local_addr: self.local_addr.clone(),
680-
error: None,
681664
}
682665
}
683666
}
@@ -750,58 +733,6 @@ impl Index<&str> for Response {
750733
}
751734
}
752735

753-
#[cfg(not(feature = "unstable"))]
754-
impl From<Error> for Response {
755-
/// Create a new response from an `http_types::Error`.
756-
///
757-
/// This will store the error in the `Response`, allowing it to later be
758-
/// checked via `Response::error()`.
759-
fn from(error: Error) -> Self {
760-
let (trailers_sender, trailers_receiver) = sync::channel(1);
761-
Self {
762-
status: error.status(),
763-
headers: Headers::new(),
764-
version: None,
765-
body: Body::empty(),
766-
trailers_sender: Some(trailers_sender),
767-
trailers_receiver: Some(trailers_receiver),
768-
has_trailers: false,
769-
ext: Extensions::new(),
770-
peer_addr: None,
771-
local_addr: None,
772-
error: Some(error),
773-
}
774-
}
775-
}
776-
777-
#[cfg(feature = "unstable")]
778-
impl From<Error> for Response {
779-
/// Create a new response from an `http_types::Error`.
780-
///
781-
/// This will store the error in the `Response`, allowing it to later be
782-
/// checked via `Response::error()`.
783-
fn from(error: Error) -> Self {
784-
let (trailers_sender, trailers_receiver) = sync::channel(1);
785-
let (upgrade_sender, upgrade_receiver) = sync::channel(1);
786-
Self {
787-
status: error.status(),
788-
headers: Headers::new(),
789-
version: None,
790-
body: Body::empty(),
791-
trailers_sender: Some(trailers_sender),
792-
trailers_receiver: Some(trailers_receiver),
793-
has_trailers: false,
794-
upgrade_sender: Some(upgrade_sender),
795-
upgrade_receiver: Some(upgrade_receiver),
796-
has_upgrade: false,
797-
ext: Extensions::new(),
798-
peer_addr: None,
799-
local_addr: None,
800-
error: Some(error),
801-
}
802-
}
803-
}
804-
805736
impl From<StatusCode> for Response {
806737
fn from(s: StatusCode) -> Self {
807738
Response::new(s)

tests/error.rs

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use http_types::{bail, ensure, ensure_eq, Error, Response, StatusCode};
1+
use http_types::{bail, ensure, ensure_eq, Error, StatusCode};
22
use std::io;
33

44
#[test]
@@ -70,21 +70,3 @@ fn option_ext() {
7070
let err = res.unwrap_err();
7171
assert_eq!(err.status(), StatusCode::NotFound);
7272
}
73-
74-
#[test]
75-
fn to_response() {
76-
let msg = "This is an error";
77-
78-
let error = Error::from_str(StatusCode::NotFound, msg);
79-
let mut res: Response = error.into();
80-
81-
assert!(res.error().is_some());
82-
// Ensure we did not consume the error
83-
assert!(res.error().is_some());
84-
85-
assert_eq!(res.error().unwrap().status(), StatusCode::NotFound);
86-
assert_eq!(res.error().unwrap().to_string(), msg);
87-
88-
res.take_error();
89-
assert!(res.error().is_none());
90-
}

0 commit comments

Comments
 (0)