4 releases
0.1.3 | Aug 5, 2024 |
---|---|
0.1.2 | Aug 5, 2024 |
0.1.1 | Aug 3, 2024 |
0.1.0 | Aug 3, 2024 |
#449 in Asynchronous
7KB
101 lines
Debouncer
A simple debouncer for Rust, using Tokio for async timing. This crate provides a mechanism to debounce function calls, ensuring that only the last call within a specified delay is executed.
Installation
Add this to your Cargo.toml
:
[dependencies]
debouncer = "0.1.0"
tokio = { version = "1", features = ["full"] }
Usage
Here’s a basic example demonstrating how to use the Debouncer:
use tokio::time::Duration;
use debouncer::Debouncer;
#[tokio::main]
async fn main() {
let debouncer = Debouncer::new(Duration::from_secs(1));
let counter = Arc::new(Mutex::new(0));
let counter_clone = Arc::clone(&counter);
debouncer.call(move || {
async move {
let mut num = counter_clone.lock().unwrap();
*num += 1;
}
}).await;
}
Contributing
Contributions are welcome! Please open an issue or submit a pull request on GitHub.
1. Fork the repository
2. Create your feature branch (git checkout -b feature/your-feature)
3. Commit your changes (git commit -am 'Add some feature')
4. Push to the branch (git push origin feature/your-feature)
5. Create a new Pull Request
License
This project is licensed under the MIT or Apache-2.0 License. See the LICENSE file for details.
Dependencies
~2.4–8MB
~58K SLoC