summaryrefslogtreecommitdiff
path: root/crates/cli
diff options
context:
space:
mode:
authorHenry Gressmann <mail@henrygressmann.de>2023-12-04 13:54:29 +0100
committerHenry Gressmann <mail@henrygressmann.de>2023-12-04 13:54:29 +0100
commit63591a46640ec43199c91e6283d87a3c94074ace (patch)
tree2f2c949b5a71db96a923d11b0b2e1c4b6af40aa5 /crates/cli
parent8e065ba9557e1e6c591c6b877823d93dc75d748d (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.rs10
-rw-r--r--crates/cli/wat.rs2
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")