8个版本

0.1.7 2023年1月11日
0.1.6 2023年1月6日
0.1.1 2022年12月26日

#1693 in 嵌入式开发

每月29次下载

MIT许可证

24KB
587

已弃用,请使用 MicroAsync-RT 代替!

microasync-util

MicroAsync (GitHub) 功能有限,没有IO支持,没有合适的运行时。MicroAsync-Util提供这些功能

  • 支持添加任务的小型运行时(支持no_std
  • 小型计时器
  • 文件、TCP和UDP的异步IO

队列运行时

队列运行时是一个非常小的异步运行时,支持在运行时添加更多任务。新任务必须仅从它上面正在运行的任务中或在其等待之前添加!

use microasync::sync;
use microasync_util::{QueuedRuntime, wait_ms};

fn main() {
    let mut runtime = QueuedRuntime::new();
    for _ in 0..50 {
        runtime.push(print_something_after_ms(2000));
    }
    sync(runtime);
}

async fn print_something_after_ms(ms: u64) {
    wait_ms(ms).await;
    println!("something! :D");
}
use microasync::sync;
use microasync_util::{QueuedRuntime, wait_ms, get_current_runtime};

fn main() {
    let mut runtime = QueuedRuntime::new();
    runtime.push(print_something_after_ms(0));
    sync(runtime);
}

async fn print_something_after_ms(ms: u64) {
    wait_ms(ms).await;
    println!("something after {ms}ms! :D");
    get_current_runtime().await.push(print_something_after_ms(ms + 1));
}

示例

在examples/中有许多示例 - 欢迎查看!

依赖项

~7KB