# async-sema-rs


Async semaphore library
## Manual
Install: Run `cargo add async-sema` in the project directory
## example
```rust
use async_sema::Semaphore;
let s = Semaphore::new(2);
// async acquire
s.acquire().await;
s.batch_acquire(1).await;
// instant acquire
let a = s.try_acquire().unwrap();
assert!(s.try_acquire().is_none());
s.add_permits(1);
assert!(s.try_acquire().is_some());
```