9个版本
使用旧的Rust 2015
0.3.4 | 2020年1月29日 |
---|---|
0.3.3 | 2020年1月29日 |
0.3.2 | 2018年5月3日 |
0.2.2 | 2018年5月1日 |
0.1.0 | 2018年4月30日 |
#1007 in 数据结构
40KB
579 行
subset-map
摘要
subset-map
是一种类似于映射的数据结构,其键是 SubsetMap
初始化时使用的元素组合。
元素的顺序由在 SubsetMap
初始化时使用的元素中元素的位置定义。
SubsetMap
将元素克隆到子集中。因此,您应该考虑只使用那些您愿意赋予它们 Copy
特性的元素类型。
查找是线性的。因此,SubsetMap
应仅用于元素集不是太大的情况下。
示例
use subset_map::*;
// Initialize the map where the payloads are basically the keys
let subset_map = SubsetMap::fill(&[1, 2, 3], |x| x.iter().cloned().collect::<Vec<_>>());
assert_eq!(subset_map.get(&[1]), Some(&vec![1]));
assert_eq!(subset_map.get(&[2]), Some(&vec![2]));
assert_eq!(subset_map.get(&[3]), Some(&vec![3]));
assert_eq!(subset_map.get(&[1, 2]), Some(&vec![1, 2]));
assert_eq!(subset_map.get(&[2, 3]), Some(&vec![2, 3]));
assert_eq!(subset_map.get(&[1, 3]), Some(&vec![1, 3]));
assert_eq!(subset_map.get(&[1, 2, 3]), Some(&vec![1, 2, 3]));
// No internal ordering is performed:
// The position in the original set is crucial:
assert_eq!(subset_map.get(&[2,1]), None);
功能
启用 serde
功能允许使用 serde
进行序列化和反序列化。
最近更改
- 0.3.4
- 添加了一个walk方法,该方法在键和值上操作
- 0.3.3
- 删除了一些不必要的生命周期
- 0.3.2
- 添加了更多迭代/遍历方法
- 0.3.1
- 添加了处理有效负载的方法
- 0.3.0
- [重大更改]: 更改API以使其更一致
- 0.2.2
- 修复了
size
函数
- 修复了
- 0.2.1
- 优化了
find
和lookup
- 添加了
size
函数以返回组合数
- 优化了
- 0.2.0
- 将MatchQuality重命名为
LookupResult
LookupResult
也包含无匹配的情况- 改进了文档
- 将MatchQuality重命名为
许可证
subset-map
在 MIT 许可证和 Apache 许可证(版本 2.0)的条款下分发。
版权(2018) Christian Douven
有关详细信息,请参阅 LICENSE-APACHE 和 LICENSE-MIT。
许可证: Apache-2.0/MIT
依赖项
~175KB