2 releases

0.1.1 Jul 4, 2023
0.1.0 Jun 30, 2023

#2532 in Rust patterns

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.8–6.5MB
~34K SLoC