4个版本 (2个稳定版本)
1.0.1 | 2024年7月5日 |
---|---|
1.0.0 | 2020年6月5日 |
0.9.1 | 2020年6月5日 |
0.9.0 | 2020年6月5日 |
在文本处理中排名第167
每月下载量1,808
用于 3 crates
23KB
484 代码行
CaseInsensitiveHashMap
对std::collections::HashMap的包装,使用不区分大小写的字符串作为键。
由于这是一个标准HashMap的简单包装,请参阅其文档以获取更多信息。
CaseInsensitiveHashMap的键类型始终是UniCase<String>
。大多数具有键参数的方法都有一个约束<K: Into<Key>>
。这意味着你可以用String
、&str
或UniCase<String>
调用它们(如果你已经有了),这使得API比直接在你的std::collections::HashMap
中将UniCase<String>
用作键类型更易于使用。
示例
use unicase::UniCase;
use case_insensitive_hashmap::CaseInsensitiveHashMap;
let mut map = CaseInsensitiveHashMap::new();
map.insert("a", 20);
map.insert("B".to_string(), 40);
// All these are valid key forms.
assert!(map.contains_key("A"));
assert!(map.contains_key("A".to_string()));
let uc = UniCase::new("A".to_string());
assert!(map.contains_key(uc));
// Lookup of values is case-insensitive.
assert_eq!(map.get("a"), Some(&20));
assert_eq!(map.get("A"), Some(&20));
assert_eq!(map["a"], 20);
assert_eq!(map["A"], 20);
实现
这使用了UniCase crate来处理不区分大小写。用作键的字符串被包装在UniCase
对象中,以便它们以不区分大小写的方式进行哈希和比较。
发行说明
- 1.0.1 - 将UniCase版本提升到2.7.0。
依赖项
~95KB