arbitrary-lock

Crates.ioarbitrary-lock
lib.rsarbitrary-lock
version0.1.1
sourcesrc
created_at2023-06-30 10:05:26.341422
updated_at2023-07-04 04:29:17.011804
descriptionLock by arbitrary keys
homepagehttps://github.com/wilsonzlin/arbitrary-lock
repositoryhttps://github.com/wilsonzlin/arbitrary-lock.git
max_upload_size
id904322
size7,256
Wilson Lin (wilsonzlin)

documentation

README

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;
};
Commit count: 4

cargo fmt