This crate defines several kinds of weak hash maps and sets. See the full API documentation.
It’s on crates.io, so you can add
toml
[dependencies]
weak-table = "0.1.2"
to your Cargo.toml
and
rust
extern crate weak_table;
to your crate root.
Here we create a weak hash set and demonstrate that it forgets elements whose reference counts expire:
```rust use weak_table::WeakHashSet; use std::sync::{Arc, Weak};
type Table = WeakHashSet
let mut set = Table::new();
let a = Arc::
set.insert(a.clone());
assert!( set.contains("a") ); assert!( ! set.contains("b") );
set.insert(b.clone());
assert!( set.contains("a") ); assert!( set.contains("b") );
drop(a);
assert!( ! set.contains("a") ); assert!( set.contains("b") ); ```