| Vulnerabilities | |||||
|---|---|---|---|---|---|
| Version | Suggest | Low | Medium | High | Critical |
| 0.12.0 | 0 | 0 | 0 | 0 | 0 |
| 0.11.1 | 0 | 0 | 0 | 0 | 0 |
| 0.11.0 | 0 | 0 | 0 | 0 | 0 |
| 0.10.0 | 0 | 0 | 0 | 0 | 0 |
| 0.9.1 | 0 | 0 | 0 | 0 | 0 |
| 0.9.0 | 0 | 0 | 0 | 0 | 0 |
| 0.8.4 | 0 | 0 | 0 | 0 | 0 |
| 0.8.3 | 0 | 0 | 0 | 0 | 0 |
| 0.8.2 | 0 | 0 | 0 | 0 | 0 |
| 0.8.1 | 0 | 0 | 0 | 0 | 0 |
| 0.8.0 | 0 | 0 | 0 | 0 | 0 |
| 0.7.0 | 0 | 0 | 0 | 0 | 0 |
| 0.6.0 | 0 | 0 | 0 | 0 | 0 |
| 0.5.1 | 0 | 0 | 0 | 0 | 0 |
| 0.5.0 | 0 | 0 | 0 | 0 | 0 |
| 0.4.0 | 0 | 0 | 0 | 0 | 0 |
| 0.3.0 | 0 | 0 | 0 | 0 | 0 |
| 0.2.1 | 0 | 0 | 0 | 0 | 0 |
| 0.2.0 | 0 | 0 | 0 | 0 | 0 |
| 0.1.0 | 0 | 0 | 0 | 0 | 0 |
0.12.0 - This version is safe to use because it has no known security vulnerabilities at this time. Find out if your coding project uses this component and get notified of any reported security vulnerabilities with Meterian-X Open Source Security Platform
Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.
MIT - MIT LicenseThis crate is a fork of
linked-hash-map that builds on
top of hashbrown to implement more up
to date versions of LinkedHashMap LinkedHashSet, and LruCache.
One important API change is that when a LinkedHashMap is used as a LRU cache,
it allows you to easily retrieve an entry and move it to the back OR produce a
new entry at the back without needlessly repeating key hashing and lookups:
let mut lru_cache = LinkedHashMap::new();
let key = "key".to_owned();
// Try to find my expensive to construct and hash key
let _cached_val = match lru_cache.raw_entry_mut().from_key(&key) {
RawEntryMut::Occupied(mut occupied) => {
// Cache hit, move entry to the back.
occupied.to_back();
occupied.into_mut()
}
RawEntryMut::Vacant(vacant) => {
// Insert expensive to construct key and expensive to compute value,
// automatically inserted at the back.
vacant.insert(key.clone(), 42).1
}
};Or, a simpler way to do the same thing:
let mut lru_cache = LinkedHashMap::new();
let key = "key".to_owned();
let _cached_val = lru_cache
.raw_entry_mut()
.from_key(&key)
.or_insert_with(|| (key.clone(), 42));This crate contains a decent amount of unsafe code from handling its internal
linked list, and the unsafe code has diverged quite a lot from the original
linked-hash-map implementation. It currently passes tests under miri and
sanitizers, but it should probably still receive more review and testing, and
check for test code coverage.
There is a huge amount of code in this crate that is copied verbatim from
linked-hash-map and hashbrown, especially tests, associated types like
iterators, and things like Debug impls.
This library is licensed the same as linked-hash-map and hashbrown, it is licensed under either of:
at your option.