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}