#hash-map #linked-hash-map #no-std #amortized #linked-hash-set

no-std ritelinked

HashMap-like containers that hold their key-value pairs in a user controllable order

7 releases

0.3.2 Aug 24, 2021
0.3.1 May 27, 2021
0.2.2 Mar 6, 2021
0.1.0 Mar 3, 2021

#1488 in Data structures

Download history 4288/week @ 2024-07-22 5404/week @ 2024-07-29 6446/week @ 2024-08-05 4878/week @ 2024-08-12 5037/week @ 2024-08-19 6673/week @ 2024-08-26 5072/week @ 2024-09-02 4245/week @ 2024-09-09 2967/week @ 2024-09-16 3107/week @ 2024-09-23 3999/week @ 2024-09-30 3272/week @ 2024-10-07 2970/week @ 2024-10-14 4108/week @ 2024-10-21 3094/week @ 2024-10-28 1936/week @ 2024-11-04

12,213 downloads per month
Used in 11 crates (8 directly)

MIT/Apache

93KB
2.5K SLoC

RiteLinked -- HashMap-like containers that hold their key-value pairs in a user controllable order

Latest Version API Documentation

RiteLinked provides more up to date versions of LinkedHashMap & LinkedHashSet . You can easily use it on std or no_std environment.

Support some practical feature combinations to help you better embed them in existing code: serde, inline-more etc. Especially, it uses griddle by default, if you have a lot of data, it can effectively help you reduce the possible tail delay. (Of course, hashbrown can also be used)

Usage

Add ritelinked to Cargo.toml:

ritelinked = "x.y.z"

Write some code like this:

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));

Benchmark

ritelinked              time:   [165.09 ns 165.40 ns 165.79 ns]                       
Found 12 outliers among 100 measurements (12.00%)
  5 (5.00%) high mild
  7 (7.00%) high severe

hashlink                time:   [168.11 ns 168.48 ns 168.96 ns]                     
Found 13 outliers among 100 measurements (13.00%)
  2 (2.00%) high mild
  11 (11.00%) high severe

linked-hash-map         time:   [370.98 ns 382.59 ns 397.44 ns]                            
Found 7 outliers among 100 measurements (7.00%)
  7 (7.00%) high mild

Credit

It is a fork of the popular crate hashlink, but more adjustments and improvements have been made to the code .

License

This library is licensed the same as hashlink, it is licensed under either of:

at your option.

Dependencies

~0.7–1.1MB
~18K SLoC