1 #![allow(unused_macros)]
2 
3 macro_rules! cfg_resource_drivers {
4     ($($item:item)*) => {
5         $(
6             #[cfg(any(feature = "io-driver", feature = "time"))]
7             $item
8         )*
9     }
10 }
11 
12 macro_rules! cfg_blocking {
13     ($($item:item)*) => {
14         $(
15             #[cfg(feature = "blocking")]
16             #[cfg_attr(docsrs, doc(cfg(feature = "blocking")))]
17             $item
18         )*
19     }
20 }
21 
22 /// Enables blocking API internals
23 macro_rules! cfg_blocking_impl {
24     ($($item:item)*) => {
25         $(
26             #[cfg(any(
27                     feature = "blocking",
28                     feature = "fs",
29                     feature = "dns",
30                     feature = "io-std",
31                     feature = "rt-threaded",
32                     ))]
33             $item
34         )*
35     }
36 }
37 
38 /// Enables blocking API internals
39 macro_rules! cfg_not_blocking_impl {
40     ($($item:item)*) => {
41         $(
42             #[cfg(not(any(
43                         feature = "blocking",
44                         feature = "fs",
45                         feature = "dns",
46                         feature = "io-std",
47                         feature = "rt-threaded",
48                         )))]
49             $item
50         )*
51     }
52 }
53 
54 /// Enables internal `AtomicWaker` impl
55 macro_rules! cfg_atomic_waker_impl {
56     ($($item:item)*) => {
57         $(
58             #[cfg(any(
59                 feature = "io-driver",
60                 feature = "time",
61                 all(feature = "rt-core", feature = "rt-util")
62             ))]
63             #[cfg(not(loom))]
64             $item
65         )*
66     }
67 }
68 
69 macro_rules! cfg_dns {
70     ($($item:item)*) => {
71         $(
72             #[cfg(feature = "dns")]
73             #[cfg_attr(docsrs, doc(cfg(feature = "dns")))]
74             $item
75         )*
76     }
77 }
78 
79 macro_rules! cfg_fs {
80     ($($item:item)*) => {
81         $(
82             #[cfg(feature = "fs")]
83             #[cfg_attr(docsrs, doc(cfg(feature = "fs")))]
84             $item
85         )*
86     }
87 }
88 
89 macro_rules! cfg_io_blocking {
90     ($($item:item)*) => {
91         $( #[cfg(any(feature = "io-std", feature = "fs"))] $item )*
92     }
93 }
94 
95 macro_rules! cfg_io_driver {
96     ($($item:item)*) => {
97         $(
98             #[cfg(feature = "io-driver")]
99             #[cfg_attr(docsrs, doc(cfg(feature = "io-driver")))]
100             $item
101         )*
102     }
103 }
104 
105 macro_rules! cfg_not_io_driver {
106     ($($item:item)*) => {
107         $(
108             #[cfg(not(feature = "io-driver"))]
109             $item
110         )*
111     }
112 }
113 
114 macro_rules! cfg_io_std {
115     ($($item:item)*) => {
116         $(
117             #[cfg(feature = "io-std")]
118             #[cfg_attr(docsrs, doc(cfg(feature = "io-std")))]
119             $item
120         )*
121     }
122 }
123 
124 macro_rules! cfg_io_util {
125     ($($item:item)*) => {
126         $(
127             #[cfg(feature = "io-util")]
128             #[cfg_attr(docsrs, doc(cfg(feature = "io-util")))]
129             $item
130         )*
131     }
132 }
133 
134 macro_rules! cfg_not_io_util {
135     ($($item:item)*) => {
136         $( #[cfg(not(feature = "io-util"))] $item )*
137     }
138 }
139 
140 macro_rules! cfg_loom {
141     ($($item:item)*) => {
142         $( #[cfg(loom)] $item )*
143     }
144 }
145 
146 macro_rules! cfg_not_loom {
147     ($($item:item)*) => {
148         $( #[cfg(not(loom))] $item )*
149     }
150 }
151 
152 macro_rules! cfg_macros {
153     ($($item:item)*) => {
154         $(
155             #[cfg(feature = "macros")]
156             #[cfg_attr(docsrs, doc(cfg(feature = "macros")))]
157             #[doc(inline)]
158             $item
159         )*
160     }
161 }
162 
163 macro_rules! cfg_process {
164     ($($item:item)*) => {
165         $(
166             #[cfg(feature = "process")]
167             #[cfg_attr(docsrs, doc(cfg(feature = "process")))]
168             #[cfg(not(loom))]
169             $item
170         )*
171     }
172 }
173 
174 macro_rules! cfg_signal {
175     ($($item:item)*) => {
176         $(
177             #[cfg(feature = "signal")]
178             #[cfg_attr(docsrs, doc(cfg(feature = "signal")))]
179             #[cfg(not(loom))]
180             $item
181         )*
182     }
183 }
184 
185 macro_rules! cfg_stream {
186     ($($item:item)*) => {
187         $(
188             #[cfg(feature = "stream")]
189             #[cfg_attr(docsrs, doc(cfg(feature = "stream")))]
190             $item
191         )*
192     }
193 }
194 
195 macro_rules! cfg_sync {
196     ($($item:item)*) => {
197         $(
198             #[cfg(feature = "sync")]
199             #[cfg_attr(docsrs, doc(cfg(feature = "sync")))]
200             $item
201         )*
202     }
203 }
204 
205 macro_rules! cfg_not_sync {
206     ($($item:item)*) => {
207         $( #[cfg(not(feature = "sync"))] $item )*
208     }
209 }
210 
211 macro_rules! cfg_rt_core {
212     ($($item:item)*) => {
213         $(
214             #[cfg(feature = "rt-core")]
215             $item
216         )*
217     }
218 }
219 
220 macro_rules! doc_rt_core {
221     ($($item:item)*) => {
222         $(
223             #[cfg(feature = "rt-core")]
224             #[cfg_attr(docsrs, doc(cfg(feature = "rt-core")))]
225             $item
226         )*
227     }
228 }
229 
230 macro_rules! cfg_not_rt_core {
231     ($($item:item)*) => {
232         $( #[cfg(not(feature = "rt-core"))] $item )*
233     }
234 }
235 
236 macro_rules! cfg_rt_threaded {
237     ($($item:item)*) => {
238         $(
239             #[cfg(feature = "rt-threaded")]
240             #[cfg_attr(docsrs, doc(cfg(feature = "rt-threaded")))]
241             $item
242         )*
243     }
244 }
245 
246 macro_rules! cfg_rt_util {
247     ($($item:item)*) => {
248         $(
249             #[cfg(feature = "rt-util")]
250             #[cfg_attr(docsrs, doc(cfg(feature = "rt-util")))]
251             $item
252         )*
253     }
254 }
255 
256 macro_rules! cfg_not_rt_threaded {
257     ($($item:item)*) => {
258         $( #[cfg(not(feature = "rt-threaded"))] $item )*
259     }
260 }
261 
262 macro_rules! cfg_tcp {
263     ($($item:item)*) => {
264         $(
265             #[cfg(feature = "tcp")]
266             #[cfg_attr(docsrs, doc(cfg(feature = "tcp")))]
267             $item
268         )*
269     }
270 }
271 
272 macro_rules! cfg_test_util {
273     ($($item:item)*) => {
274         $(
275             #[cfg(feature = "test-util")]
276             #[cfg_attr(docsrs, doc(cfg(feature = "test-util")))]
277             $item
278         )*
279     }
280 }
281 
282 macro_rules! cfg_not_test_util {
283     ($($item:item)*) => {
284         $( #[cfg(not(feature = "test-util"))] $item )*
285     }
286 }
287 
288 macro_rules! cfg_time {
289     ($($item:item)*) => {
290         $(
291             #[cfg(feature = "time")]
292             #[cfg_attr(docsrs, doc(cfg(feature = "time")))]
293             $item
294         )*
295     }
296 }
297 
298 macro_rules! cfg_not_time {
299     ($($item:item)*) => {
300         $( #[cfg(not(feature = "time"))] $item )*
301     }
302 }
303 
304 macro_rules! cfg_udp {
305     ($($item:item)*) => {
306         $(
307             #[cfg(feature = "udp")]
308             #[cfg_attr(docsrs, doc(cfg(feature = "udp")))]
309             $item
310         )*
311     }
312 }
313 
314 macro_rules! cfg_uds {
315     ($($item:item)*) => {
316         $(
317             #[cfg(all(unix, feature = "uds"))]
318             #[cfg_attr(docsrs, doc(cfg(feature = "uds")))]
319             $item
320         )*
321     }
322 }
323