4 releases

0.3.3 Jul 28, 2024
0.3.2 Aug 27, 2023
0.3.1 Mar 20, 2022
0.2.1 Mar 20, 2022
0.1.0 Mar 20, 2022

#65 in Concurrency

Download history 11336/week @ 2024-07-21 11216/week @ 2024-07-28 12617/week @ 2024-08-04 14025/week @ 2024-08-11 12522/week @ 2024-08-18 14888/week @ 2024-08-25 12187/week @ 2024-09-01 13697/week @ 2024-09-08 13715/week @ 2024-09-15 14458/week @ 2024-09-22 11975/week @ 2024-09-29 13221/week @ 2024-10-06 14266/week @ 2024-10-13 19026/week @ 2024-10-20 15361/week @ 2024-10-27 16453/week @ 2024-11-03

65,813 downloads per month
Used in 82 crates (5 directly)

Apache-2.0

21KB
356 lines

memo-map

Build Status Crates.io License rustc 1.41.0 Documentation

A concurrent insert only hash map.

This crate implements a “memo map” which is in many ways similar to a HashMap with some crucial differences:

  • Unlike a regular hash map, a memo map is thread safe and synchronized.
  • Adding or retrieving keys works through a shared reference, removing only through a mutable reference.
  • Retrieving a value from a memo map returns a plain old reference.
use memo_map::MemoMap;

let memo = MemoMap::new();
let one = memo.get_or_insert(&1, || "one".to_string());
let one2 = memo.get_or_insert(&1, || "not one".to_string());
assert_eq!(one, "one");
assert_eq!(one2, "one");

No runtime deps