macron_collections/
btree_map.rs

1use macron_map::map;
2
3/// Creates a collection [BTreeMap](std::collections::BTreeMap)
4#[cfg(not(feature = "from_macron"))]
5#[macro_export]
6macro_rules! btree_map {
7    ($($tt:tt)*) => {{
8        ::std::collections::BTreeMap::from( ::macron_collections::map!( $($tt)* ) )
9    }};
10}
11/// Creates a collection [BTreeMap](std::collections::BTreeMap)
12#[cfg(feature = "from_macron")]
13#[macro_export]
14macro_rules! btree_map {
15    ($($tt:tt)*) => {{
16        ::std::collections::BTreeMap::from( ::macron::map!( $($tt)* ) )
17    }};
18}
19
20/// Creates a collection [BTreeMap](std::collections::BTreeMap) with auto type converting by [Into::into()](std::convert::Into)
21#[cfg(not(feature = "from_macron"))]
22#[macro_export]
23macro_rules! auto_btree_map {
24    ($($tt:tt)*) => {{
25        let fields = ::macron_collections::map!($($tt)*);
26        let map: ::std::collections::BTreeMap<String, _> = fields
27            .into_iter()
28            .map(|(k, v)| (k.into(), v.into()))
29            .collect();
30        map
31    }};
32}
33/// Creates a collection [BTreeMap](std::collections::BTreeMap) with auto type converting by [Into::into()](std::convert::Into)
34#[cfg(feature = "from_macron")]
35#[macro_export]
36macro_rules! auto_btree_map {
37    ($($tt:tt)*) => {{
38        let fields = ::macron::map!($($tt)*);
39        let map: ::std::collections::BTreeMap<String, _> = fields
40            .into_iter()
41            .map(|(k, v)| (k.into(), v.into()))
42            .collect();
43        map
44    }};
45}
46
47/// Creates a stringify collection [BTreeMap](std::collections::BTreeMap)
48#[cfg(not(feature = "from_macron"))]
49#[macro_export]
50macro_rules! str_btree_map {
51    ($($tt:tt)*) => {{
52        let fields = ::macron_collections::map!($($tt)*);
53        let map: ::std::collections::BTreeMap<String, _> = fields
54            .into_iter()
55            .map(|(k, v)| (String::from(k), String::from(v)))
56            .collect();
57        map
58    }};
59}
60/// Creates a stringify collection [BTreeMap](std::collections::BTreeMap)
61#[cfg(feature = "from_macron")]
62#[macro_export]
63macro_rules! str_btree_map {
64    ($($tt:tt)*) => {{
65        let fields = ::macron::map!($($tt)*);
66        let map: ::std::collections::BTreeMap<String, _> = fields
67            .into_iter()
68            .map(|(k, v)| (String::from(k), String::from(v)))
69            .collect();
70        map
71    }};
72}