Hashable wrappers for reference countings.
Provides hashable wrappers for Rc<T> and Weak<T> references
with the types HashableRc<T> and HashableWeak<T>,
respectively. This allows use of both strong and weak reference
countings in hash-based data structures, such as HashMap or
HashSet.
Quick Start
The most common use cases are wrapping Rc<T> or Weak<T> in
HashableRc<T> or HashableWeak<T> respectively to be
contained in a hash-based container. An example of using both types
as keys in a HashMap follows.
use HashMap;
use ;
use ;
// Create a strong reference counting for an object.
let rc: = new;
// Use the strong reference as a key for a HashMap.
let mut strong_map = new;
strong_map.insert;
assert_eq!;
// Create a weak reference counting for the same object as above.
let weak: = downgrade;
// Use the weak reference as a key for a HashMap.
let mut weak_map = new;
weak_map.insert;
assert_eq!;
Insertion into other hash-based containers (such as a HashSet)
follows similarly.