#reference #rc #hash #identity #hash-key #reference-identity

hash_by_ref

一个简单的 NewType,它封装了 Rc 并允许使用 Rc 的引用标识/指针值作为 hashmap 的键

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2017年6月23日

#20#hash-key

23 每月下载量

自定义许可证

4KB
74

HashByRef

这是一个小的辅助 crate,用于将 Rc<T> 作为哈希键使用,其中等价性是通过底层引用标识(即指针值)来确定的。它提供了一个类型 HashByRef<T>,该类型可以用作 hashmap 的键。

快速开始

hash_by_ref = "0.1.0"
    use std::collections::HashMap;
    use std::rc::Rc;
    use hash_by_ref::HashByRef;

    let r1 = Rc::new(1);
    let r2 = Rc::new(1);
    let r3 = r1.clone();
    let mut h = HashMap::new();
    h.insert(HashByRef::new(r1.clone()),1);
    h.insert(HashByRef::new(r2.clone()),2);
    assert_eq!(h[&HashByRef::new(r1.clone())], 1);
    assert_eq!(h[&HashByRef::new(r2.clone())], 2);
    assert_eq!(h[&HashByRef::new(r3.clone())], 1);

无运行时依赖