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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/// Handy macro to construct a hashmap using the [`ahash`] hasher
///
/// Example:
///
/// ```rust
/// # use bubble_bath::hashmap;
/// hashmap! [
///     "key" => hashmap![],
///     "key2" => hashmap![
///         "inner key" => "inner value",
///     ],
/// ];
/// ```
#[macro_export]
macro_rules! hashmap {
    ($($key:expr => $value:expr),*$(,)?) => {{
        let mut hashmap = $crate::ahash::AHashMap::new();

        $(
            let _ = hashmap.insert($key, $value);
        )*

        hashmap
    }}
}

/// Handy macro to construct a hashset using the [`ahash`] hasher
///
/// Example:
///
/// ```rust
/// # use bubble_bath::hashset;
/// hashset![
///     "key1",
///     "key2",
///     "key3",
/// ];
#[macro_export]
macro_rules! hashset {
    ($($value:expr),*$(,)?) => {{
        let mut hashset = $crate::ahash::AHashSet::new();

        $(
            let _ = hashset.insert($value);
        )*

        hashset
    }}
}