#日期时间 #异步 #系统时间 #WASM #能力提供者

wasmcloud-interface-sleepy

与sleepy能力提供者交互的接口

6个版本

0.1.5 2023年4月15日
0.1.4 2023年4月1日
0.1.0 2023年3月30日

#1255 in 异步

每月 22 次下载

Apache-2.0 和可能 LGPL-3.0-or-later

11KB
138 代码行

wasmcloud-interface-sleepy

"jclmnop:sleepy"能力合约的接口定义。此合约允许actor休眠指定的时间,并可在wasmcloud主机上检索当前系统时间。

适用于实现速率限制或其他基于时间的功能。

示例

use wasmcloud_interface_sleepy::SleepySender;
use wasmbus_rpc::actor::prelude::*;
use wasmbus_rpc::Timestamp;

async fn sleep_for_5_seconds(ctx: &Context) -> RpcResult<()> {
    let sleepy = SleepySender::new();
    sleepy.sleep(ctx, &5).await?;
}

async fn sleep_until_5_seconds(ctx: &Context) -> RpcResult<()> {
    let sleepy = SleepySender::new();
    let now = sleepy::now();
    let five_seconds = Timestamp::new(now.sec + 5, now.nsec);
    sleepy.sleep_until(ctx, &five_seconds).await?;
}

async fn get_current_time(ctx: &Context) -> RpcResult<Timestamp> {
    let sleepy = SleepySender::new();
    sleepy.now(ctx).await
}

lib.rs:

sleepy-interface

依赖项

~12–29MB
~472K SLoC