37 stable releases (6 major)
6.2.0 | Nov 14, 2023 |
---|---|
6.1.0 | Jan 30, 2022 |
5.2.1 | Jan 4, 2022 |
5.2.0 | Dec 30, 2021 |
0.4.2 | Oct 31, 2019 |
#280 in Asynchronous
149,451 downloads per month
Used in 82 crates
(3 directly)
11KB
192 lines
Simple promise library compatible with std::future
and async/await
Example
Create a promise and wait for the result while computing the result in another thread
use pinky_swear::{Pinky, PinkySwear};
use std::{thread, time::Duration};
fn compute(pinky: Pinky<Result<u32, ()>>) {
thread::sleep(Duration::from_millis(1000));
pinky.swear(Ok(42));
}
fn main() {
let (promise, pinky) = PinkySwear::new();
thread::spawn(move || {
compute(pinky);
});
assert_eq!(promise.wait(), Ok(42));
}
lib.rs
:
Simple promise library compatible with std::future
and async/await
Example
Create a promise and wait for the result while computing the result in another thread
use pinky_swear::{Pinky, PinkySwear};
use std::{thread, time::Duration};
fn compute(pinky: Pinky<Result<u32, ()>>) {
thread::sleep(Duration::from_millis(1000));
pinky.swear(Ok(42));
}
fn main() {
let (promise, pinky) = PinkySwear::new();
thread::spawn(move || {
compute(pinky);
});
assert_eq!(promise.wait(), Ok(42));
}
Dependencies
~0.9–5.5MB
~21K SLoC