#macro #hash-map #literals #vector

velcro

为向量、哈希表和其他 Rust 集合初始化提供便捷宏

14 个版本

0.5.4 2023 年 1 月 1 日
0.5.3 2021 年 1 月 15 日
0.5.2 2020 年 12 月 20 日
0.4.4 2020 年 12 月 9 日
0.1.2 2020 年 11 月 25 日

#242数据结构

Download history 995/week @ 2024-03-14 1382/week @ 2024-03-21 1545/week @ 2024-03-28 1272/week @ 2024-04-04 2352/week @ 2024-04-11 2614/week @ 2024-04-18 2420/week @ 2024-04-25 2637/week @ 2024-05-02 2742/week @ 2024-05-09 1817/week @ 2024-05-16 1881/week @ 2024-05-23 1541/week @ 2024-05-30 2014/week @ 2024-06-06 1960/week @ 2024-06-13 2286/week @ 2024-06-20 2849/week @ 2024-06-27

9,476 每月下载量
用于 34 包(17 个直接使用)

Unlicense OR MIT

18KB

Velcro

Build Status

一组宏,用于从 Rust 的 std 和迭代器方便地初始化集合。所有宏都支持一元 .. 操作符,该操作符可以“展开”另一个集合或迭代器的值。

velcro::vec!std::vec! 的直接替代品。它支持所有 std 宏的功能,没有开销,同时支持使用 .. 操作符展开值。

示例

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

帮助

如需帮助、提问或报告问题,请使用 GitHub 问题跟踪器

依赖项

~1.5MB
~36K SLoC