#future #combinator #order #control #execution

ert

控制未来执行顺序的组合器

4个版本

0.2.2 2020年9月1日
0.2.1 2020年6月29日
0.2.0 2020年3月19日
0.1.0 2019年9月29日

#1025 in 异步

MIT许可证

10KB
174 代码行数(不包括注释)

ert

控制未来执行顺序的组合器。

Latest version Documentation License Actions Status

struct Data {
    file: String,
    tag: usize,
    value: usize,
}

#[tokio::main]
async fn main() {
    // Stream of `Data` coming over TCP.
    let f = tcp_stream()
        .map(|d| {
            let tag = d.tag;
            let f = async move {
                let v = read_value_from_file(&d.file).await;
                write_value_to_file(&d.file, v + d.value).await;
            };
            f.via_g(tag)
        })
        .buffer_unordered(100)
        .for_each(|_| async {});

    f.await;
}

order

依赖关系

~4.5MB
~65K SLoC