1 个不稳定版本
0.1.0 | 2023 年 3 月 28 日 |
---|
#2735 在 Rust 模式 中
用于 projectable
8KB
57 行
collect-all
一个宏,用于创建任何类型的集合字面量!想想看 vec!
,但适用于任何集合类型!
内部,这仅仅使用了 Iterator::collect()
方法。由于 collect
由 FromIterator
驱动,你可以通过实现它来为你的类型使用这个宏!
示例
基本用法,推断集合的类型
use collect_all::collect;
use std::collections::HashSet;
let hashset: HashSet<i32> = collect![1, 2, 3];
assert_eq!(HashSet::from_iter([1, 2, 3]), hashset);
在宏调用中指定类型
use collect_all::collect;
use std::collections::HashMap;
let hashmap = collect![HashMap<&str, u8>: ("one", 1), ("two", 2)];
assert_eq!(HashMap::from_iter([("one", 1), ("two", 2)]), hashmap);
使用指定的容量创建
use collect_all::collect;
use std::path::PathBuf;
let pathbuf = collect![PathBuf: "path", "to", "file"; 10];
assert_eq!(PathBuf::from("path/to/file"), pathbuf);
assert!(pathbuf.capacity() >= 10);
请注意,这依赖于一些针对给定集合的 非严格保证 的东西
with_capacity
是目标类型的方法(例如,参见Vec::with_capacity
)- 目标类型实现了
Extend
许可证
此包采用 MIT 许可证。