0.1.6 - This version may not be safe as it has not been updated for a long 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.
Apache-2.0 - Apache License 2.0This library provides an hashed set with predictable iteration order, based on the insertion order of elements.
It is implemented as a linked_hash_map::LinkedHashMap where the value is (), in a similar way as HashSet is implemented from HashMap in stdlib.
HashSet
General usage is very similar to a traditional hashed set, but this structure also maintains insertion order.
Compared to HashSet, a LinkedHashSet uses an additional doubly-linked list running through its entries.
As such methods front(), pop_front(), back(), pop_back() and refresh() are provided.
IndexSet
Compared to indexmap::IndexSet, while both maintain insertion order a LinkedHashSet uses a linked list allowing performant removals that don't affect the order of the remaining elements. However, when this distinction is unimportant indexmap should be the faster option.
let mut set = linked_hash_set::LinkedHashSet::new();
assert!(set.insert(234));
assert!(set.insert(123));
assert!(set.insert(345));
assert!(!set.insert(123)); // Also see `insert_if_absent` which won't change order
assert_eq!(set.into_iter().collect::<Vec<_>>(), vec![234, 345, 123]);This crate is maintained with latest stable rust.