std_macro_extensions/b_tree_set/
macro.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/// Creates a new `BTreeSet<T>`.
///
/// This macro provides two ways to initialize a `BTreeSet`:
///
/// 1. **Empty Set**:
///    - Calling `b_tree_set!()` creates an empty `BTreeSet`.
///
/// 2. **With Elements**:
///    - You can also initialize a `BTreeSet` with elements by providing a comma-separated list of values, e.g., `b_tree_set!(1, 2, 3)`.
///    - This will create a `BTreeSet` containing the specified elements.
///
/// # Examples
///
/// ```
/// use std_macro_extensions::*;
/// let empty_set: BTreeSet<i32> = b_tree_set!();
/// let number_set: BTreeSet<i32> = b_tree_set!(1, 2, 3);
/// ```
#[macro_export]
macro_rules! b_tree_set {
    () => {
        std::collections::BTreeSet::new()
    };
    ($($elem:expr),*) => {{
        let mut set = std::collections::BTreeSet::new();
        $( set.insert($elem); )*
        set
    }};
}