dev_tool/
macro_util.rs

1/// 创建一个HashMap
2/// 
3/// ```rust
4/// use dev_tool::macro_util::map;
5/// let map = map!{"a" => 1, "b" => 2, "c" => 3};
6/// ```
7#[macro_export]
8macro_rules! map {
9    ($($key:expr => $value:expr),*) => {
10        {
11            let mut map = ::std::collections::HashMap::new();
12            $(
13                map.insert($key, $value);
14            )*
15            map
16        }
17    };
18}
19
20/// 创建一个HashSet
21/// 
22/// ```rust
23/// use dev_tool::macro_util::set;
24/// let set = set!("a", "b", "c");
25/// ```
26#[macro_export]
27macro_rules! set {
28    ($($value:expr), *) => {
29        {
30            let mut v = ::std::collections::HashSet::new();
31            $(
32                v.insert($value);
33            )*
34            v
35        }
36    };
37}
38
39#[test]
40fn it_works() {
41    let set = set!("a", "b");
42    println!("{:?}", set);
43
44
45    let map = map!{
46        "a" => 1, 
47        "b" => 2
48    };
49    println!("{:?}", map);
50}