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

Download history • Rust 包仓库 181/week @ 2024-04-25 • Rust 包仓库 156/week @ 2024-05-02 • Rust 包仓库 210/week @ 2024-05-09 • Rust 包仓库 230/week @ 2024-05-16 • Rust 包仓库 190/week @ 2024-05-23 • Rust 包仓库 159/week @ 2024-05-30 • Rust 包仓库 180/week @ 2024-06-06 • Rust 包仓库 234/week @ 2024-06-13 • Rust 包仓库 240/week @ 2024-06-20 • Rust 包仓库 275/week @ 2024-06-27 • Rust 包仓库 247/week @ 2024-07-04 • Rust 包仓库 194/week @ 2024-07-11 • Rust 包仓库 401/week @ 2024-07-18 • Rust 包仓库 880/week @ 2024-07-25 • Rust 包仓库 272/week @ 2024-08-01 • Rust 包仓库 207/week @ 2024-08-08 • Rust 包仓库

每月下载量1,808
用于 3 crates

MIT授权

23KB
484 代码行

CaseInsensitiveHashMap

std::collections::HashMap的包装,使用不区分大小写的字符串作为键。

由于这是一个标准HashMap的简单包装,请参阅其文档以获取更多信息。

CaseInsensitiveHashMap的键类型始终是UniCase<String>。大多数具有键参数的方法都有一个约束<K: Into<Key>>。这意味着你可以用String&strUniCase<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