macron_collections/
hash_map.rs

1/// Creates a collection [HashMap](std::collections::HashMap)
2#[macro_export]
3macro_rules! hash_map {
4    ($($tokens:tt)*) => {{
5        ::std::collections::HashMap::from( ::macron_map::map!( $($tokens)* ) )
6    }};
7}
8
9/// Creates a collection [HashMap](std::collections::HashMap) with auto type converting by [Into::into()](std::convert::Into)
10#[macro_export]
11macro_rules! auto_hash_map {
12    ($($tokens:tt)*) => {{
13        let fields = ::macron_map::map!($($tokens)*);
14        let map: ::std::collections::HashMap<String, _> = fields
15            .into_iter()
16            .map(|(k, v)| (k.into(), v.into()))
17            .collect();
18        map
19    }};
20}
21
22/// Creates a stringify collection [HashMap](std::collections::HashMap)
23#[macro_export]
24macro_rules! str_hash_map {
25    ($($tokens:tt)*) => {{
26        let fields = ::macron_map::map!($($tokens)*);
27        let map: ::std::collections::HashMap<String, _> = fields
28            .into_iter()
29            .map(|(k, v)| (String::from(k), String::from(v)))
30            .collect();
31        map
32    }};
33}