1#[macro_export]
3macro_rules! btreemap {
4 () => (::std::collections::BTreeMap::new());
5
6 ($($key:expr_2021 => $value:expr_2021,)+) => (btreemap!($($key => $value),+));
8
9 ($($key:expr_2021 => $value:expr_2021),*) => {
10 ::std::collections::BTreeMap::from([
11 $(
12 ($key.into(), $value.into()),
13 )*
14 ])
15 };
16}
17
18#[cfg(test)]
19mod tests {
20 #[test]
21 fn test_btreemap() {
22 use std::collections::BTreeMap;
23
24 assert_eq!(btreemap! {}, BTreeMap::<usize, usize>::new());
25
26 let mut map = BTreeMap::new();
27 map.insert(1, "1");
28 assert_eq!(btreemap! { 1 => "1" }, map);
29
30 let mut map = BTreeMap::new();
31 map.insert("1", "one");
32 map.insert("2", "two");
33 assert_eq!(btreemap! { "1" => "one", "2" => "two" }, map);
34 }
35}