1#[macro_export]
13macro_rules! cfg_iter {
14 ($e:expr, $min_len:expr) => {{
15 #[cfg(feature = "parallel")]
16 let result = $e.par_iter().with_min_len($min_len);
17
18 #[cfg(not(feature = "parallel"))]
19 let result = $e.iter();
20
21 result
22 }};
23 ($e:expr) => {{
24 #[cfg(feature = "parallel")]
25 let result = $e.par_iter();
26
27 #[cfg(not(feature = "parallel"))]
28 let result = $e.iter();
29
30 result
31 }};
32}
33
34#[macro_export]
39macro_rules! cfg_iter_mut {
40 ($e:expr, $min_len:expr) => {{
41 #[cfg(feature = "parallel")]
42 let result = $e.par_iter_mut().with_min_len($min_len);
43
44 #[cfg(not(feature = "parallel"))]
45 let result = $e.iter_mut();
46
47 result
48 }};
49 ($e:expr) => {{
50 #[cfg(feature = "parallel")]
51 let result = $e.par_iter_mut();
52
53 #[cfg(not(feature = "parallel"))]
54 let result = $e.iter_mut();
55
56 result
57 }};
58}
59
60#[macro_export]
65macro_rules! cfg_into_iter {
66 ($e:expr, $min_len:expr) => {{
67 #[cfg(feature = "parallel")]
68 let result = $e.into_par_iter().with_min_len($min_len);
69
70 #[cfg(not(feature = "parallel"))]
71 let result = $e.into_iter();
72
73 result
74 }};
75 ($e:expr) => {{
76 #[cfg(feature = "parallel")]
77 let result = $e.into_par_iter();
78
79 #[cfg(not(feature = "parallel"))]
80 let result = $e.into_iter();
81
82 result
83 }};
84}
85
86#[macro_export]
91macro_rules! cfg_chunks {
92 ($e:expr, $size:expr) => {{
93 #[cfg(feature = "parallel")]
94 let result = $e.par_chunks($size);
95
96 #[cfg(not(feature = "parallel"))]
97 let result = $e.chunks($size);
98
99 result
100 }};
101}
102
103#[macro_export]
108macro_rules! cfg_chunks_mut {
109 ($e:expr, $size:expr) => {{
110 #[cfg(feature = "parallel")]
111 let result = $e.par_chunks_mut($size);
112
113 #[cfg(not(feature = "parallel"))]
114 let result = $e.chunks_mut($size);
115
116 result
117 }};
118}
119
120#[macro_export]
125macro_rules! cfg_extend {
126 ($e:expr, $i:expr) => {{
127 #[cfg(feature = "parallel")]
128 let result = $e.par_extend($i);
129
130 #[cfg(not(feature = "parallel"))]
131 let result = $e.extend($i);
132
133 result
134 }};
135}
136
137#[macro_export]
150macro_rules! cfg_join {
151 ($a:expr, $b:expr $(,)?) => {{
152 #[cfg(feature = "parallel")]
153 let result = rayon::join(|| $a, || $b);
154
155 #[cfg(not(feature = "parallel"))]
156 let result = ($a, $b);
157
158 result
159 }};
160 ($first:expr, $($rest:expr),+ $(,)?) => {{
161 #[cfg(feature = "parallel")]
162 let result = rayon::join(
163 || $first,
164 || cfg_join!($($rest),+),
165 );
166
167 #[cfg(not(feature = "parallel"))]
168 let result = ($first, cfg_join!($($rest),+));
169
170 result
171 }};
172}