#macro #collection #comprehension

more_collection_macros

为 Rust 添加创建集合的新宏

4 个版本

0.2.2 2022 年 2 月 15 日
0.2.1 2022 年 1 月 31 日
0.2.0 2022 年 1 月 31 日
0.1.0 2022 年 1 月 30 日

#1646开发工具

每月 42 次下载
用于 3 个 Crates (2 个直接使用)

MIT/Apache

10KB
167

更多集合宏

作者:Joshua Radin

仓库

此库提供了一组创建 std 集合 的实用宏,类似于默认的 vec!

理解

这些宏启用类似于 Python 中的列表/映射理解。例如,以下 Python 代码

list = [x*x for x in range(0,10)]
dict = {x : x*x for x in range(0,10)}

相当于以下 Rust 代码

let list = list![x*x; x in 0..10];
let dict = map!{x => x*x; x in 0..10};

命名空间样式

对于映射,您还可以使用标识符作为键,然后将其转换为 &'static str 键。

map!{
    field1: 0,
    field2: 1
};

使用此表示法不能重复字段。以下将引发 运行时 错误。

map!{
    field1: 0,
    field1: 1
};

lib.rs:

更多集合宏

此库提供了一组创建 std 集合 的实用宏,类似于默认的 vec!

理解

这些宏启用类似于 Python 中的列表/映射理解。例如,以下 Python 代码

list = [x*x for x in range(0,10)]
dict = {x : x*x for x in range(0,10)}

相当于以下 Rust 代码


let list = list![x*x; x in 0..10];
let dict = map!{x => x*x; x in 0..10};

命名空间样式

对于映射,您还可以使用标识符作为键,然后将其转换为 &'static str 键。

map!{
    field1: 0,
    field2: 1
};

使用这些表示法不能重复字段。以下将引发 运行时 错误。

map!{
    field1: 0,
    field1: 1
};

无运行时依赖