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