From 461126ce309f99e4ad2a6ddcbc175ea01c5e8fee Mon Sep 17 00:00:00 2001 From: Henry Gressmann Date: Fri, 26 Jan 2024 01:26:09 +0100 Subject: feat: full no_std support Signed-off-by: Henry Gressmann --- examples/wasm-rust.rs | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 examples/wasm-rust.rs (limited to 'examples/wasm-rust.rs') 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::>(); + if args.len() < 2 { + println!("Usage: cargo run --example wasm-rust "); + 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(()) +} -- cgit v1.3.1