add hyper-011 cargo feature to ease migration

This commit is contained in:
Sean McArthur
2018-08-15 16:47:02 -07:00
parent 73a15ba13b
commit e182c416c9
5 changed files with 62 additions and 1 deletions

View File

@@ -14,6 +14,13 @@ matrix:
- rust: nightly
env: FEATURES=""
- rust: stable
env: FEATURES="--features hyper-011"
- rust: beta
env: FEATURES="--features hyper-011"
- rust: nightly
env: FEATURES="--features hyper-011"
# minimum version
- rust: 1.21.0
script: cargo build

View File

@@ -18,6 +18,7 @@ encoding_rs = "0.7"
futures = "0.1.21"
http = "0.1.5"
hyper = "0.12.2"
hyper-old-types = { version = "0.11", optional = true, features = ["compat"] }
hyper-tls = "0.3"
libflate = "0.1.11"
log = "0.4"
@@ -38,4 +39,5 @@ error-chain = "0.10"
serde_derive = "1.0"
[features]
default = []
hyper-011 = ["hyper-old-types"]

View File

@@ -122,6 +122,31 @@ impl RequestBuilder {
self
}
/// Set a header with a type implementing hyper v0.11's `Header` trait.
///
/// This method is provided to ease migration, and requires the `hyper-011`
/// Cargo feature enabled on `reqwest`.
#[cfg(feature = "hyper-011")]
pub fn header_011<H>(self, header: H) -> RequestBuilder
where
H: ::hyper_011::header::Header,
{
let mut headers = ::hyper_011::Headers::new();
headers.set(header);
let map = ::header::HeaderMap::from(headers);
self.headers(map)
}
/// Set multiple headers using hyper v0.11's `Headers` map.
///
/// This method is provided to ease migration, and requires the `hyper-011`
/// Cargo feature enabled on `reqwest`.
#[cfg(feature = "hyper-011")]
pub fn headers_011(self, headers: ::hyper_011::Headers) -> RequestBuilder {
let map = ::header::HeaderMap::from(headers);
self.headers(map)
}
/// Enable HTTP basic authentication.
pub fn basic_auth<U, P>(self, username: U, password: Option<P>) -> RequestBuilder
where

View File

@@ -131,6 +131,8 @@ extern crate encoding_rs;
extern crate futures;
extern crate http;
extern crate hyper;
#[cfg(feature = "hyper-011")]
pub extern crate hyper_old_types as hyper_011;
extern crate hyper_tls;
#[macro_use]
extern crate log;

View File

@@ -175,6 +175,31 @@ impl RequestBuilder {
self
}
/// Set a header with a type implementing hyper v0.11's `Header` trait.
///
/// This method is provided to ease migration, and requires the `hyper-011`
/// Cargo feature enabled on `reqwest`.
#[cfg(feature = "hyper-011")]
pub fn header_011<H>(self, header: H) -> RequestBuilder
where
H: ::hyper_011::header::Header,
{
let mut headers = ::hyper_011::Headers::new();
headers.set(header);
let map = ::header::HeaderMap::from(headers);
self.headers(map)
}
/// Set multiple headers using hyper v0.11's `Headers` map.
///
/// This method is provided to ease migration, and requires the `hyper-011`
/// Cargo feature enabled on `reqwest`.
#[cfg(feature = "hyper-011")]
pub fn headers_011(self, headers: ::hyper_011::Headers) -> RequestBuilder {
let map = ::header::HeaderMap::from(headers);
self.headers(map)
}
/// Enable HTTP basic authentication.
///
/// ```rust