2个版本
使用旧的Rust 2015
0.1.1 | 2017年11月6日 |
---|---|
0.1.0 | 2017年8月29日 |
2343 在 数据结构 中
每月下载 57 次
在 4 个 包(2个直接使用)中使用
9KB
177 行
any_key
关联数组的动态类型键。
lib.rs
:
关联数组的动态类型键。
示例
use std::collections::{BTreeMap, HashMap};
use any_key::{AnyHash, AnyOrd};
#[derive(PartialEq, Eq, Hash, PartialOrd, Ord)]
struct Foo;
// AnyHash can be used as a key for HashMap-like types
let mut map = HashMap::new();
map.insert(Box::new("hello") as Box<AnyHash>, 1);
map.insert(Box::new(42) as Box<AnyHash>, 2);
map.insert(Box::new(Foo) as Box<AnyHash>, 3);
assert_eq!(map.get(&(Box::new("hello") as Box<AnyHash>)), Some(&1));
assert_eq!(map.get(&(Box::new(42) as Box<AnyHash>)), Some(&2));
assert_eq!(map.get(&(Box::new(Foo) as Box<AnyHash>)), Some(&3));
// AnyOrd can be used as a key for HashMap-like types
let mut map = BTreeMap::new();
map.insert(Box::new("hello") as Box<AnyOrd>, 1);
map.insert(Box::new(42) as Box<AnyOrd>, 2);
map.insert(Box::new(Foo) as Box<AnyOrd>, 3);
assert_eq!(map.get(&(Box::new("hello") as Box<AnyOrd>)), Some(&1));
assert_eq!(map.get(&(Box::new(42) as Box<AnyOrd>)), Some(&2));
assert_eq!(map.get(&(Box::new(Foo) as Box<AnyOrd>)), Some(&3));
依赖项
~32KB