9 releases
| 0.5.4 | Jan 1, 2023 |
|---|---|
| 0.5.2 | Jan 15, 2021 |
| 0.5.1 | Dec 20, 2020 |
| 0.4.2 | Dec 9, 2020 |
| 0.2.0 | Nov 29, 2020 |
#6 in #rust-std
13,986 downloads per month
Used in 37 crates
(via velcro)
35KB
902 lines
Velcro
A set of macros for conveniently initializing collections from Rust's std and iterators. All of the macros support the unary .. operator which "spreads"
the values of another collection or iterator.
velcro::vec! is a drop-in replacement for std::vec!. All functionality of
the std macro is supported without overhead, but it also supports spreading values with the .. operator.
Examples
use velcro::{hash_map, iter, vec};
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 whitespace = iter![' ', '\t', '\r', '\n'];
let map = hash_map! {
..('0'..='9'): "digit",
..('a'..='z'): "lower",
..('A'..='Z'): "upper",
..whitespace: "whitespace",
'.': "punctuation",
',': "punctuation",
};
assert_eq!(map[&'x'], "lower");
assert_eq!(map[&'\r'], "whitespace");
assert_eq!(map[&'.'], "punctuation");
Help
For help, questions or to report an issue, please use the Github issue tracker.
Dependencies
~1.5MB
~38K SLoC