#request-response #tokio #ids #同步 #接收 #消息

aligne

使用 tokio 同步异步请求/响应与 Ids 的小型包

1 个不稳定版本

0.1.0 2022 年 5 月 13 日

#1927 in 异步

MIT 许可证

8KB
164 代码行

aligne

使用 tokio 同步异步请求/响应与 Ids 的小型包。


lib.rs:

aligne

一个帮助同步异步请求/响应的包。

示例

#[tokio::main]
pub async fn main() {
    let handle = aligne::ResponseManager::spawn();
    let remote_a = handle.remote();
    let remote_b = remote_a.clone();

    let _h1 = tokio::spawn(async move {
        let msg = remote_b.request(2).await;
        assert_eq!(msg, "message 2");
        let msg = remote_b.request(1).await;
        assert_eq!(msg, "message 1");
    });

    let _h2 = tokio::spawn(async move {
        remote_a.receive(1, "message 1").await;
        remote_a.receive(2, "message 2").await;
    });

    _h1.await.unwrap();
    _h2.await.unwrap();
}

依赖项

~2.4–8.5MB
~57K SLoC