@@ -58,7 +58,7 @@ macro_rules! arr {
58
58
macro_rules! deque {
59
59
[ ] => { std:: collections:: VecDeque :: new( ) } ;
60
60
[ $elem: expr; $n: expr ] => { std:: collections:: VecDeque :: from( vec![ $elem; $n] ) } ;
61
- [ $( $e: expr) ,+ $( , ) ? ] => { std:: collections:: VecDeque :: from( vec![ $( $e) ,+] ) } ;
61
+ [ $( $e: expr) ,* $( , ) ? ] => { std:: collections:: VecDeque :: from( vec![ $( $e) ,+] ) } ;
62
62
}
63
63
64
64
/// new a `LinkedList<T>`
@@ -144,14 +144,14 @@ macro_rules! list {
144
144
}
145
145
l
146
146
} } ;
147
- [ $( $e: expr) ,+ $( , ) ? ] => { {
147
+ [ $( $e: expr) ,* $( , ) ? ] => { {
148
148
let mut l = std:: collections:: LinkedList :: new( ) ;
149
- $( l. push_back( $e) ; ) +
149
+ $( l. push_back( $e) ; ) *
150
150
l
151
151
} } ;
152
- [ <- $( $e: expr) ,+ $( , ) ? ] => { {
152
+ [ <- $( $e: expr) ,* $( , ) ? ] => { {
153
153
let mut l = std:: collections:: LinkedList :: new( ) ;
154
- $( l. push_front( $e) ; ) +
154
+ $( l. push_front( $e) ; ) *
155
155
l
156
156
} } ;
157
157
}
@@ -179,14 +179,45 @@ macro_rules! list {
179
179
/// }
180
180
/// # ;
181
181
/// ```
182
+ /// ---
183
+ /// map like
184
+ /// ```
185
+ /// # use batch_oper::*;
186
+ /// # use std::collections::*;
187
+ /// # let ka = 1; let va = 2; let kb = 3; let vb = 4;
188
+ /// map! { let BTreeMap::new();
189
+ /// ka => va,
190
+ /// kb => vb,
191
+ /// }
192
+ /// # ;
193
+ /// ```
194
+ /// *equivalent to*
195
+ /// ```
196
+ /// # use std::collections::*;
197
+ /// # let ka = 1; let va = 2; let kb = 3; let vb = 4;
198
+ /// {
199
+ /// let mut m = BTreeMap::new();
200
+ /// m.insert(ka, va);
201
+ /// m.insert(kb, vb);
202
+ /// m
203
+ /// }
204
+ /// # ;
205
+ /// ```
182
206
#[ macro_export]
183
207
macro_rules! map {
184
208
{ } => { std:: collections:: HashMap :: new( ) } ;
185
- { $( $k: expr => $v: expr) ,+ $( , ) ? } => { {
209
+ { $( $k: expr => $v: expr) ,* $( , ) ? } => { {
186
210
let mut m = std:: collections:: HashMap :: new( ) ;
187
211
$(
188
212
m. insert( $k, $v) ;
189
- ) +
213
+ ) *
214
+ m
215
+ } } ;
216
+ { let $m: expr; $( $k: expr => $v: expr) ,* $( , ) ? } => { {
217
+ let mut m = $m;
218
+ $(
219
+ m. insert( $k, $v) ;
220
+ ) *
190
221
m
191
222
} } ;
192
223
}
@@ -217,11 +248,11 @@ macro_rules! map {
217
248
#[ macro_export]
218
249
macro_rules! btmap {
219
250
{ } => { std:: collections:: BTreeMap :: new( ) } ;
220
- { $( $k: expr => $v: expr) ,+ $( , ) ? } => { {
251
+ { $( $k: expr => $v: expr) ,* $( , ) ? } => { {
221
252
let mut m = std:: collections:: BTreeMap :: new( ) ;
222
253
$(
223
254
m. insert( $k, $v) ;
224
- ) +
255
+ ) *
225
256
m
226
257
} } ;
227
258
}
@@ -249,10 +280,10 @@ macro_rules! btmap {
249
280
/// ```
250
281
#[ macro_export]
251
282
macro_rules! map_append {
252
- { $m: expr; $( $k: expr => $v: expr) ,+ $( , ) ? } => {
283
+ { $m: expr; $( $k: expr => $v: expr) ,* $( , ) ? } => {
253
284
$(
254
285
$m. insert( $k, $v) ;
255
- ) +
286
+ ) *
256
287
} ;
257
288
}
258
289
@@ -276,14 +307,42 @@ macro_rules! map_append {
276
307
/// }
277
308
/// # ;
278
309
/// ```
310
+ /// ---
311
+ /// set like
312
+ /// ```
313
+ /// # use batch_oper::*;
314
+ /// # use std::collections::*;
315
+ /// # let a = 1; let b = 2;
316
+ /// set![let BTreeSet::new(); 1, 2]
317
+ /// # ;
318
+ /// ```
319
+ /// *equivalent to*
320
+ /// ```
321
+ /// # use std::collections::*;
322
+ /// # let a = 1; let b = 2;
323
+ /// {
324
+ /// let mut s = BTreeSet::new();
325
+ /// s.insert(a);
326
+ /// s.insert(b);
327
+ /// s
328
+ /// }
329
+ /// # ;
330
+ /// ```
279
331
#[ macro_export]
280
332
macro_rules! set {
281
333
{ } => { std:: collections:: HashSet :: new( ) } ;
282
- { $( $e: expr) ,+ $( , ) ? } => { {
334
+ { $( $e: expr) ,* $( , ) ? } => { {
283
335
let mut s = std:: collections:: HashSet :: new( ) ;
284
336
$(
285
337
s. insert( $e) ;
286
- ) +
338
+ ) *
339
+ s
340
+ } } ;
341
+ { let $s: expr; $( $e: expr) ,* $( , ) ? } => { {
342
+ let mut s = $s;
343
+ $(
344
+ s. insert( $e) ;
345
+ ) *
287
346
s
288
347
} } ;
289
348
}
@@ -311,11 +370,11 @@ macro_rules! set {
311
370
#[ macro_export]
312
371
macro_rules! btset {
313
372
{ } => { std:: collections:: BTreeSet :: new( ) } ;
314
- { $( $e: expr) ,+ $( , ) ? } => { {
373
+ { $( $e: expr) ,* $( , ) ? } => { {
315
374
let mut s = std:: collections:: BTreeSet :: new( ) ;
316
375
$(
317
376
s. insert( $e) ;
318
- ) +
377
+ ) *
319
378
s
320
379
} } ;
321
380
}
0 commit comments