diff options
| author | Henry Gressmann <mail@henrygressmann.de> | 2023-12-04 13:54:29 +0100 |
|---|---|---|
| committer | Henry Gressmann <mail@henrygressmann.de> | 2023-12-04 13:54:29 +0100 |
| commit | 63591a46640ec43199c91e6283d87a3c94074ace (patch) | |
| tree | 2f2c949b5a71db96a923d11b0b2e1c4b6af40aa5 /crates/cli | |
| parent | 8e065ba9557e1e6c591c6b877823d93dc75d748d (diff) | |
feat: add typed_func_handle, check for _start function
Signed-off-by: Henry Gressmann <mail@henrygressmann.de>
Diffstat (limited to 'crates/cli')
| -rw-r--r-- | crates/cli/bin.rs | 10 | ||||
| -rw-r--r-- | crates/cli/wat.rs | 2 |
2 files changed, 6 insertions, 6 deletions
diff --git a/crates/cli/bin.rs b/crates/cli/bin.rs index f8b0e1e..3615e4a 100644 --- a/crates/cli/bin.rs +++ b/crates/cli/bin.rs @@ -3,7 +3,7 @@ use std::str::FromStr; use argh::FromArgs; use color_eyre::eyre::Result; use log::info; -use tinywasm::{self, Module, WasmValue}; +use tinywasm::{self, Module}; mod util; #[cfg(feature = "wat")] @@ -86,7 +86,7 @@ fn main() -> Result<()> { #[cfg(not(feature = "wat"))] true => { return Err(color_eyre::eyre::eyre!( - "wat support is not enabled, please enable it with --features wat" + "wat support is not enabled in this build" )) } false => tinywasm::Module::parse_file(path)?, @@ -103,9 +103,9 @@ fn run(module: Module) -> Result<()> { let mut store = tinywasm::Store::default(); let instance = module.instantiate(&mut store)?; - let func = instance.get_func(&store, "add")?; - let params = vec![WasmValue::I32(2), WasmValue::I32(2)]; - let res = func.call(&mut store, params)?; + + let func = instance.get_typed_func::<(i32, i32), (i32,)>(&store, "add")?; + let (res,) = func.call(&mut store, (2, 2))?; info!("{res:?}"); Ok(()) diff --git a/crates/cli/wat.rs b/crates/cli/wat.rs index 22d931d..fd00a8e 100644 --- a/crates/cli/wat.rs +++ b/crates/cli/wat.rs @@ -3,7 +3,7 @@ use wast::{ Wat, }; -pub fn wat2wasm<'a>(wat: &str) -> Vec<u8> { +pub fn wat2wasm(wat: &str) -> Vec<u8> { let buf = ParseBuffer::new(wat).expect("failed to create parse buffer"); let mut module = parser::parse::<Wat>(&buf).expect("failed to parse wat"); module.encode().expect("failed to encode wat") |
