37个稳定版本 (6个主要版本)
6.2.0 | 2023年11月14日 |
---|---|
6.1.0 | 2022年1月30日 |
5.2.1 | 2022年1月4日 |
5.2.0 | 2021年12月30日 |
0.4.2 | 2019年10月31日 |
#126 in 异步
每月141,755次下载
用于 78 个crate (直接使用3个)
11KB
192 行
与std::future和async/await兼容的简单承诺库
示例
创建一个承诺并在另一个线程中计算结果的同时等待结果
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
:
与std::future和async/await兼容的简单承诺库
示例
创建一个承诺并在另一个线程中计算结果的同时等待结果
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));
}
依赖
~1–6MB
~21K SLoC