#promise #future #async

pinky-swear

未来和异步/await兼容的承诺

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 异步

Download history · Rust 包仓库 26066/week @ 2024-04-22 · Rust 包仓库 24377/week @ 2024-04-29 · Rust 包仓库 24597/week @ 2024-05-06 · Rust 包仓库 26182/week @ 2024-05-13 · Rust 包仓库 27387/week @ 2024-05-20 · Rust 包仓库 24705/week @ 2024-05-27 · Rust 包仓库 30835/week @ 2024-06-03 · Rust 包仓库 28338/week @ 2024-06-10 · Rust 包仓库 25184/week @ 2024-06-17 · Rust 包仓库 29178/week @ 2024-06-24 · Rust 包仓库 26039/week @ 2024-07-01 · Rust 包仓库 31588/week @ 2024-07-08 · Rust 包仓库 33665/week @ 2024-07-15 · Rust 包仓库 34522/week @ 2024-07-22 · Rust 包仓库 35245/week @ 2024-07-29 · Rust 包仓库 37247/week @ 2024-08-05 · Rust 包仓库

每月141,755次下载
用于 78 个crate (直接使用3个)

BSD-2-Clause

11KB
192

与std::future和async/await兼容的简单承诺库

API Docs Build status Downloads

示例

创建一个承诺并在另一个线程中计算结果的同时等待结果

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