| Crates.io | async-promise |
| lib.rs | async-promise |
| version | 0.1.0 |
| created_at | 2025-04-29 20:30:07.670162+00 |
| updated_at | 2025-04-29 20:30:07.670162+00 |
| description | Async promise which resolves once and may be read by multiple consumers. |
| homepage | |
| repository | https://github.com/hydro-project/async-ssh2-russh |
| max_upload_size | |
| id | 1654031 |
| size | 20,060 |
async-promiseA simple promise implementation that allows for a single producer to resolve a value to multiple consumers.
Similar to a oneshot channel, but allows for multiple consumers to wait for the value to be resolved, which will be
provided as a reference (&T).
Similar to an async OnceCell, but consumers may only await the value, and may not attempt to set it.
Use [channel()] to create a new promise and resolver pair.
Add the following to your Cargo.toml:
[dependencies]
async-promise = "..."
Basic usage:
#[tokio::main]
async fn main() {
let (resolve, promise) = async_promise::channel::<i32>();
// Resolve the promise.
resolve.into_resolve(42);
// Read the value.
// May be read by multiple consumers.
let value = promise.wait().await;
assert_eq!(Some(&42), value);
}