macro_rules! cfg_feature { | |
( | |
#![$meta:meta] | |
$($item:item)* | |
) => { | |
$( | |
#[cfg($meta)] | |
#[cfg_attr(docsrs, doc(cfg($meta)))] | |
$item | |
)* | |
} | |
} | |
macro_rules! cfg_proto { | |
($($item:item)*) => { | |
cfg_feature! { | |
#![all( | |
any(feature = "http1", feature = "http2"), | |
any(feature = "client", feature = "server"), | |
)] | |
$($item)* | |
} | |
} | |
} | |
cfg_proto! { | |
macro_rules! cfg_client { | |
($($item:item)*) => { | |
cfg_feature! { | |
#![feature = "client"] | |
$($item)* | |
} | |
} | |
} | |
macro_rules! cfg_server { | |
($($item:item)*) => { | |
cfg_feature! { | |
#![feature = "server"] | |
$($item)* | |
} | |
} | |
} | |
} |