| Crates.io | awaitable-bool |
| lib.rs | awaitable-bool |
| version | 0.1.4 |
| created_at | 2023-09-03 20:33:41.361218+00 |
| updated_at | 2025-04-26 20:18:35.566444+00 |
| description | A Tokio-powered awaitable bool (analogous to a flag and highly inspired by Python's `asyncio.Event`, but can be waited for to become 'false' too) |
| homepage | |
| repository | https://github.com/babichjacob/awaitable-bool |
| max_upload_size | |
| id | 962438 |
| size | 30,342 |
This Rust library is a bool that can be waited to be set to true or set to false.
This crate is published to crates.io as awaitable-bool, so you can do
cargo add awaitable-bool
to add it to your project's dependencies.
You probably don't want to use this if you aren't me; I'm not familiar enough with atomics (which is how AwaitableBool is implemented) to know the correctness of the code!
Create an issue and I'll try to help.
Create an issue or pull request and I'll try to fix.
Licensed under either of:
at your option.
@davidspies identified and corrected a race condition in the code and relaxed some unnecessarily strict atomic ordering. Thank you!
@devalain's future-bool is an existing Rust crate that already works very closely to this.
The idea is highly inspired by Python's asyncio.Event, but an AwaitableBool can be waited for to become 'clear' too (not just 'set').
This library is implemented with Tokio's Notify synchronization tool.
I also developed async-gate right before making awaitable-bool. That breaks down changing the value of the bool and waiting for value changes into two different types (Lever and Gate respectively). It is more complex.
This README was generated with ❤️ by readme-md-generator