simple_add/
simple_add.rs

1#[macro_use]
2extern crate web_assembler as wasm;
3
4use wasm::builder::*;
5use wasm::*;
6use std::fs::File;
7use std::io::Write;
8use std::env;
9
10fn main() {
11    let out_file = env::args().nth(1).expect("argument missing: output file");
12
13    let mut md = ModuleBuilder::new();
14    let f = FunctionBuilder::new(funtype!((i32, i32) -> i32))
15        .code(|cb, params| {
16            let a = params[0];
17            let b = params[1];
18            cb.get_local(a).get_local(b).i32_add().return_()
19        })
20        .build();
21    md.new_function(f);
22
23    let module = md.build();
24    let mut code = Vec::new();
25    module.dump(&mut code);
26    let mut out = File::create(out_file).unwrap();
27    out.write(&code).unwrap();
28}