velcro 0.4.0

A convenience macro for initializing vectors.
Documentation

Velcro

A set of macros for conveniently initializing Vec, HashMap, HashSet, BTreeMap, BTreeSet and iterators. All of the macros support the .. operator which "spreads" the values of another collection or iterator into the collection being initialized.

veclro::vec is drop-in replacement for std::vec!. All functionality of the std macro is supported, but it also supports spreading values with ...

Examples

use velcro::{hash_map, vec};

assert_eq!(vec![..0..7], vec![0, 1, 2, 3, 4, 5, 6]);
assert_eq!(vec![0, 1, ..2..7], vec![0, 1, 2, 3, 4, 5, 6]);

let other = vec![3, 4, 5];
assert_eq!(vec![0, 1, 2, ..other, 6], vec![0, 1, 2, 3, 4, 5, 6]);

let map = hash_map! {
    0: "zero",
    1: "one",
    ..other: "all of these keys have the same value",
    ..10..20: "as do these",
};

assert_eq!(map.get(&0).unwrap(), "zero");
assert_eq!(map.get(&3).unwrap(), "all of these keys have the same value");
assert_eq!(map.get(&4).unwrap(), "all of these keys have the same value");
assert_eq!(map.get(&10).unwrap(), "as do these");