#dispatcher #api #gwasm #runner #dyn #high #split-context

gwasm-dispatcher

与gWasmRunner兼容应用程序的高级API

1个不稳定版本

0.1.0 2020年2月12日

#928 in WebAssembly

GPL-3.0 许可证

27KB
721

RUST的gWASM Runner API。

示例

use gwasm_api::{dispatcher, SplitContext};

fn main() {
    dispatcher::run(
        move |_: &mut dyn SplitContext| {
            const NUM_SUBTASKS: usize = 10;
            let arr: Vec<u64> = (1..=100).collect();
            arr.chunks(NUM_SUBTASKS)
                .map(|x| (x.to_vec(),))
                .collect::<Vec<_>>()
        },
        |task: Vec<u64>| (task.into_iter().sum(),),
        |_: &Vec<String>, results: Vec<(_, _)>| {
            let given: u64 = results.iter().map(|(_, (result,))| result).sum();
            let expected: u64 = (1..=100).sum();
            assert_eq!(expected, given, "sums should be equal")
        },
    )
        .unwrap()
}

依赖关系

~0.6–1.4MB
~32K SLoC