#hash-map #key-value #order #insertion #pair #wrapper

linked-hash-map

A HashMap wrapper that holds key-value pairs in insertion order

23 releases

Uses old Rust 2015

0.5.6 Jun 25, 2022
0.5.4 Jan 8, 2021
0.5.3 May 6, 2020
0.5.2 Mar 21, 2019
0.0.2 Mar 26, 2015

#43 in Data structures

Download history 288035/week @ 2023-12-23 475850/week @ 2023-12-30 622652/week @ 2024-01-06 649994/week @ 2024-01-13 665947/week @ 2024-01-20 694169/week @ 2024-01-27 697586/week @ 2024-02-03 695870/week @ 2024-02-10 691932/week @ 2024-02-17 744291/week @ 2024-02-24 739569/week @ 2024-03-02 708548/week @ 2024-03-09 714515/week @ 2024-03-16 707916/week @ 2024-03-23 725067/week @ 2024-03-30 593796/week @ 2024-04-06

2,858,959 downloads per month
Used in 5,632 crates (258 directly)

MIT/Apache

52KB
1K SLoC

Rust CI crates.io

WARNING: THIS PROJECT IS IN MAINTENANCE MODE, DUE TO INSUFFICIENT MAINTAINER RESOURCES

It works fine, but will generally no longer be improved.

We are currently only accepting changes which:

  • fix correctness issues
  • keep this compiling with the latest versions of Rust or its dependencies.
  • have minimal review requirements, such as documentation changes (so not totally new APIs).

A HashMap wrapper that holds key-value pairs in insertion order.

Documentation is available at https://docs.rs/linked-hash-map.


lib.rs:

A HashMap wrapper that holds key-value pairs in insertion order.

Examples

use linked_hash_map::LinkedHashMap;

let mut map = LinkedHashMap::new();
map.insert(2, 20);
map.insert(1, 10);
map.insert(3, 30);
assert_eq!(map[&1], 10);
assert_eq!(map[&2], 20);
assert_eq!(map[&3], 30);

let items: Vec<(i32, i32)> = map.iter().map(|t| (*t.0, *t.1)).collect();
assert_eq!(items, [(2, 20), (1, 10), (3, 30)]);

Dependencies

~0–345KB