feat(client): Make client an optional feature

cc #2223

BREAKING CHANGE: The HTTP client of hyper is now an optional feature. To
  enable the client, add `features = ["client"]` to the dependency in
  your `Cargo.toml`.
This commit is contained in:
Sean McArthur
2020-11-17 17:06:25 -08:00
committed by GitHub
parent eb092a7b8c
commit 4e55583d30
19 changed files with 242 additions and 168 deletions

View File

@@ -1,37 +1,50 @@
macro_rules! cfg_any_http {
($($item:item)*) => {
macro_rules! cfg_feature {
(
#![$meta:meta]
$($item:item)*
) => {
$(
#[cfg(any(
feature = "http1",
feature = "http2",
))]
#[cfg_attr(docsrs, doc(cfg(any(
feature = "http1",
feature = "http2",
))))]
#[cfg($meta)]
#[cfg_attr(docsrs, doc(cfg($meta)))]
$item
)*
}
}
macro_rules! cfg_any_http {
($($item:item)*) => {
cfg_feature! {
#![any(feature = "http1", feature = "http2")]
$($item)*
}
}
}
cfg_any_http! {
macro_rules! cfg_http1 {
($($item:item)*) => {
$(
#[cfg(feature = "http1")]
#[cfg_attr(docsrs, doc(cfg(feature = "http1")))]
$item
)*
cfg_feature! {
#![feature = "http1"]
$($item)*
}
}
}
macro_rules! cfg_http2 {
($($item:item)*) => {
$(
#[cfg(feature = "http2")]
#[cfg_attr(docsrs, doc(cfg(feature = "http2")))]
$item
)*
cfg_feature! {
#![feature = "http2"]
$($item)*
}
}
}
macro_rules! cfg_client {
($($item:item)*) => {
cfg_feature! {
#![feature = "client"]
$($item)*
}
}
}
}