2 releases

0.1.1 Jul 4, 2023
0.1.0 Jun 30, 2023

#7 in #cloned

Download history 20/week @ 2024-01-01 13/week @ 2024-02-12 137/week @ 2024-02-19 96/week @ 2024-02-26 48/week @ 2024-03-04 40/week @ 2024-03-11 18/week @ 2024-03-18 49/week @ 2024-03-25

167 downloads per month

MIT license

7KB
134 lines

arbitrary-lock

Acquire a lock on an arbitrary key, like a string or integer.

Usage

Add the dependency to your project:

cargo add arbitrary-lock

Use the struct:

// This can be cheaply cloned.
// The key must be Hash + Eq + Clone.
// Provide your preferred lock type as the second generic argument. It must implement Default.
let locker = ArbitraryLock::<String, tokio::sync::Mutex<()>>::new();
{
  let _l = locker.get("user:2185724".to_string()).lock().await;
  do_something_in_database().await;
};

Dependencies

~1.6–8MB
~32K SLoC