Macro more_collections::vecmap
source ยท macro_rules! vecmap { (@single $($x:tt)*) => { ... }; (@count $($rest:expr),*) => { ... }; ($elem:expr; $n:expr) => { ... }; ($($key:expr => $value:expr,)+) => { ... }; ($($key:expr => $value:expr),*) => { ... }; }
Expand description
Create a VecMap
containing the arguments.
There are two forms of this macro:
- Create a
VecMap
containing a give list of key-value pairs:
let map = vecmap! {
1usize => "a",
2 => "b",
};
assert_eq!(map[1], "a");
assert_eq!(map[2], "b");
assert_eq!(map.get(3), None);
// 1 is the first key
assert_eq!(map.keys().next(), Some(1));
- Create a
VecMap
from a given element and size:
let counters: VecMap<usize, usize> = vecmap! { 0; 3 };
assert_eq!(
vec![0, 0, 0],
counters.values().copied().collect::<Vec<_>>()
);
assert_eq!(3, counters.len());
assert_eq!(3, counters.capacity());