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());