pub(crate)ify async::response module

This commit is contained in:
Sean McArthur
2018-09-11 14:27:28 -07:00
parent b95de15587
commit 2f893718ba
2 changed files with 17 additions and 20 deletions

View File

@@ -13,7 +13,7 @@ use native_tls::{TlsConnector, TlsConnectorBuilder};
use super::body; use super::body;
use super::request::{self, Request, RequestBuilder}; use super::request::{self, Request, RequestBuilder};
use super::response::{self, Response}; use super::response::Response;
use connect::Connector; use connect::Connector;
use into_url::to_uri; use into_url::to_uri;
use redirect::{self, RedirectPolicy, remove_sensitive_headers}; use redirect::{self, RedirectPolicy, remove_sensitive_headers};
@@ -29,7 +29,6 @@ static DEFAULT_USER_AGENT: &'static str =
/// ///
/// The `Client` holds a connection pool internally, so it is advised that /// The `Client` holds a connection pool internally, so it is advised that
/// you create one and **reuse** it. /// you create one and **reuse** it.
#[derive(Clone)] #[derive(Clone)]
pub struct Client { pub struct Client {
inner: Arc<ClientRef>, inner: Arc<ClientRef>,
@@ -516,7 +515,7 @@ impl Future for PendingRequest {
debug!("Location header had invalid URI: {:?}", e); debug!("Location header had invalid URI: {:?}", e);
} }
} }
let res = response::new(res, self.url.clone(), self.client.gzip); let res = Response::new(res, self.url.clone(), self.client.gzip);
return Ok(Async::Ready(res)); return Ok(Async::Ready(res));
} }
} }

View File

@@ -22,6 +22,21 @@ pub struct Response {
} }
impl Response { impl Response {
pub(super) fn new(mut res: ::hyper::Response<::hyper::Body>, url: Url, gzip: bool) -> Response {
let status = res.status();
let version = res.version();
let mut headers = mem::replace(res.headers_mut(), HeaderMap::new());
let decoder = decoder::detect(&mut headers, body::wrap(res.into_body()), gzip);
debug!("Response: '{}' for {}", status, url);
Response {
status: status,
headers: headers,
url: url,
body: decoder,
version: version,
}
}
/// Get the final `Url` of this `Response`. /// Get the final `Url` of this `Response`.
#[inline] #[inline]
pub fn url(&self) -> &Url { pub fn url(&self) -> &Url {
@@ -148,20 +163,3 @@ impl<T> fmt::Debug for Json<T> {
.finish() .finish()
} }
} }
// pub(crate)
pub fn new(mut res: ::hyper::Response<::hyper::Body>, url: Url, gzip: bool) -> Response {
let status = res.status();
let version = res.version();
let mut headers = mem::replace(res.headers_mut(), HeaderMap::new());
let decoder = decoder::detect(&mut headers, body::wrap(res.into_body()), gzip);
debug!("Response: '{}' for {}", status, url);
Response {
status: status,
headers: headers,
url: url,
body: decoder,
version: version,
}
}