feat(lib): add raw_status feature in Cargo.toml
The `RawStatus` types on the `Response` are now gone by default. To make use of them, the `raw_status` feature must be enabled in `Cargo.toml`. BREAKING CHANGE: To use `RawStatus`, you must enable the `raw_status` crate feature.
This commit is contained in:
@@ -43,3 +43,4 @@ spmc = "0.2"
|
|||||||
[features]
|
[features]
|
||||||
default = []
|
default = []
|
||||||
nightly = []
|
nightly = []
|
||||||
|
raw_status = []
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
use std::fmt;
|
use std::fmt;
|
||||||
|
|
||||||
use header::{Header, Headers};
|
use header::{Header, Headers};
|
||||||
use http::{MessageHead, ResponseHead, Body, RawStatus};
|
use http::{MessageHead, ResponseHead, Body};
|
||||||
use status::StatusCode;
|
use status::StatusCode;
|
||||||
use version::HttpVersion;
|
use version::HttpVersion;
|
||||||
|
|
||||||
@@ -10,7 +10,8 @@ pub struct Response<B = Body> {
|
|||||||
version: HttpVersion,
|
version: HttpVersion,
|
||||||
headers: Headers,
|
headers: Headers,
|
||||||
status: StatusCode,
|
status: StatusCode,
|
||||||
raw_status: RawStatus,
|
#[cfg(feature = "raw_status")]
|
||||||
|
raw_status: ::http::RawStatus,
|
||||||
body: Option<B>,
|
body: Option<B>,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,7 +43,8 @@ impl<B> Response<B> {
|
|||||||
/// This method is only useful when inspecting the raw subject line from
|
/// This method is only useful when inspecting the raw subject line from
|
||||||
/// a received response.
|
/// a received response.
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn status_raw(&self) -> &RawStatus { &self.raw_status }
|
#[cfg(feature = "raw_status")]
|
||||||
|
pub fn status_raw(&self) -> &::http::RawStatus { &self.raw_status }
|
||||||
|
|
||||||
/// Set the `StatusCode` for this response.
|
/// Set the `StatusCode` for this response.
|
||||||
#[inline]
|
#[inline]
|
||||||
@@ -101,6 +103,19 @@ impl Response<Body> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(not(feature = "raw_status"))]
|
||||||
|
impl<B> Default for Response<B> {
|
||||||
|
fn default() -> Response<B> {
|
||||||
|
Response::<B> {
|
||||||
|
version: Default::default(),
|
||||||
|
headers: Default::default(),
|
||||||
|
status: Default::default(),
|
||||||
|
body: None,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "raw_status")]
|
||||||
impl<B> Default for Response<B> {
|
impl<B> Default for Response<B> {
|
||||||
fn default() -> Response<B> {
|
fn default() -> Response<B> {
|
||||||
Response::<B> {
|
Response::<B> {
|
||||||
@@ -125,6 +140,24 @@ impl fmt::Debug for Response {
|
|||||||
|
|
||||||
/// Constructs a response using a received ResponseHead and optional body
|
/// Constructs a response using a received ResponseHead and optional body
|
||||||
#[inline]
|
#[inline]
|
||||||
|
#[cfg(not(feature = "raw_status"))]
|
||||||
|
pub fn from_wire<B>(incoming: ResponseHead, body: Option<B>) -> Response<B> {
|
||||||
|
let status = incoming.status();
|
||||||
|
trace!("Response::new");
|
||||||
|
debug!("version={:?}, status={:?}", incoming.version, status);
|
||||||
|
debug!("headers={:?}", incoming.headers);
|
||||||
|
|
||||||
|
Response::<B> {
|
||||||
|
status: status,
|
||||||
|
version: incoming.version,
|
||||||
|
headers: incoming.headers,
|
||||||
|
body: body,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Constructs a response using a received ResponseHead and optional body
|
||||||
|
#[inline]
|
||||||
|
#[cfg(feature = "raw_status")]
|
||||||
pub fn from_wire<B>(incoming: ResponseHead, body: Option<B>) -> Response<B> {
|
pub fn from_wire<B>(incoming: ResponseHead, body: Option<B>) -> Response<B> {
|
||||||
let status = incoming.status();
|
let status = incoming.status();
|
||||||
trace!("Response::new");
|
trace!("Response::new");
|
||||||
|
|||||||
Reference in New Issue
Block a user