1 macro_rules! cfg_feature {
2     (
3         #![$meta:meta]
4         $($item:item)*
5     ) => {
6         $(
7             #[cfg($meta)]
8             #[cfg_attr(docsrs, doc(cfg($meta)))]
9             $item
10         )*
11     }
12 }
13 
14 macro_rules! cfg_proto {
15     ($($item:item)*) => {
16         cfg_feature! {
17             #![all(
18                 any(feature = "http1", feature = "http2"),
19                 any(feature = "client", feature = "server"),
20             )]
21             $($item)*
22         }
23     }
24 }
25 
26 cfg_proto! {
27     macro_rules! cfg_client {
28         ($($item:item)*) => {
29             cfg_feature! {
30                 #![feature = "client"]
31                 $($item)*
32             }
33         }
34     }
35 
36     macro_rules! cfg_server {
37         ($($item:item)*) => {
38             cfg_feature! {
39                 #![feature = "server"]
40                 $($item)*
41             }
42         }
43     }
44 }
45