#hash-table #hash-map #multi-key #associative-array

multi_key_map

a hash table that shares one value across multiple keys

3 releases (breaking)

0.3.0 Feb 19, 2023
0.2.0 Feb 19, 2023
0.1.0 Feb 16, 2023

#2086 in Data structures

Download history 7/week @ 2024-11-16 7/week @ 2024-11-30 22/week @ 2024-12-07 7/week @ 2024-12-14 14/week @ 2024-12-28 41/week @ 2025-01-04 13/week @ 2025-01-11 35/week @ 2025-01-18 13/week @ 2025-01-25 12/week @ 2025-02-01 8/week @ 2025-02-08 65/week @ 2025-02-15 68/week @ 2025-02-22 24/week @ 2025-03-01

165 downloads per month

BSD-3-Clause-Clear

24KB
563 lines

a hash table that shares one value across multiple keys.


lib.rs:

Provides [MultiKeyMap], an associative array that can share one value across multiple keys without Rc, and provides mutable access that will never panic at runtime, unlike RefCell.

use multi_key_map::MultiKeyMap;

let mut map: MultiKeyMap<i32, String> = MultiKeyMap::from([
    (vec![1, 2, 3], "foo".into()),
    (vec![4, 5], "bar".into()),
]);
map.insert_many(vec![6, 7], "quux".into());
map.alias(&7, 8);
assert_eq!(map.get(&8), Some(&String::from("quux")));

No runtime deps