1 个不稳定版本
0.1.0 | 2022年12月22日 |
---|
#1200 在 并发 分类中
每月 69 次下载
7KB
105 行
KeyLock
基于键的简单互斥库。通过键进行锁定和等待执行。
用法
使用以下命令导入项目
cargo add key-lock
示例
use key_lock::KeyLock;
#[tokio::main]
async fn main() {
// Initialize new lock.
let lock = KeyLock::new();
// Lock A, continues immediately.
let _a = lock.lock("a").await;
// Lock B, continues immediately.
let _b = lock.lock("b").await;
// Try to lock A, but it is already locked. Normal locking would block here.
assert!(lock.try_lock("a").await.is_err());
}
代码风格检查
本项目使用许多clippy代码风格检查以提升代码质量和风格。
使用 cargo-lints
安装 cargo install --git https://github.com/FlixCoder/cargo-lints
。代码风格检查定义在 lints.toml
中,可以通过运行 cargo lints clippy --all-targets --workspace
进行检查。
依赖
~2–3MB
~47K SLoC