diff options
Diffstat (limited to 'examples/wasm-rust.rs')
| -rw-r--r-- | examples/wasm-rust.rs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/examples/wasm-rust.rs b/examples/wasm-rust.rs new file mode 100644 index 0000000..21d3eb8 --- /dev/null +++ b/examples/wasm-rust.rs @@ -0,0 +1,41 @@ +use color_eyre::eyre::Result; +use tinywasm::{Extern, FuncContext, Imports, Module, Store}; + +fn main() -> Result<()> { + let args = std::env::args().collect::<Vec<_>>(); + if args.len() < 2 { + println!("Usage: cargo run --example wasm-rust <rust_example>"); + println!("Available examples:"); + println!(" hello"); + return Ok(()); + } + + match args[1].as_str() { + "hello" => hello()?, + _ => {} + } + + Ok(()) +} + +fn hello() -> Result<()> { + // const HELLO_WASM: &[u8] = include_bytes!("./rust/out/hello.wasm"); + // let module = Module::parse_bytes(&HELLO_WASM)?; + // let mut store = Store::default(); + + // let mut imports = Imports::new(); + // imports.define( + // "env", + // "printi32", + // Extern::typed_func(|_: FuncContext<'_>, x: i32| { + // println!("{}", x); + // Ok(()) + // }), + // )?; + + // let instance = module.instantiate(&mut store, Some(imports))?; + // let add_and_print = instance.typed_func::<(i32, i32), ()>(&mut store, "add_and_print")?; + // add_and_print.call(&mut store, (1, 2))?; + + Ok(()) +} |
