wasmy, easily customize my wasm app!
#[vm_handle(0)]
/#[wasm_handle(0)]
)#[wasm_onload]
support to initialize wasmtoml
[dependencies]
wasmy-vm = "0.4.2"
toml
[dependencies]
wasmy-abi = "0.4.2"
toml
wasmy-macros = "0.4.2"
```rust use rand::random; use wasmyabi::*; use wasmyabi::test::*;
fn multiply(ctx: WasmCtx, args: TestArgs) -> Result
let mut vmargs = TestArgs::new(); vmargs.a = rid; vmargs.b = rid; let vmrets: TestRets = ctx.callvm(0, vmargs)?; println!("[Wasm-Simple({})] call vm method({}): args={{{:?}}}, rets={}", rid, 0, vmrets, vmrets.get_c());
let mut rets = TestRets::new(); rets.set_c(args.a * args.b); Ok(rets) } ```
```rust use wasmy_vm::*; use crate::test::{TestArgs, TestRets};
...
fn main() { println!("wasmy, easily customize my wasm app!"); ... let wasmcaller = loadwasm(wasmpath).unwrap(); let mut data = TestArgs::new(); data.seta(2); data.setb(5); for i in 1..=3 { let res: TestRets = wasmcaller.call(0, data.clone()).unwrap(); println!("NO.{}: {}+{}={}", i, data.geta(), data.getb(), res.get_c()) } }
fn add(args: TestArgs) -> Result
```shell $ rustup target add wasm32-wasi
$ cargo +nightly build --target=wasm32-wasi --example=simple $ cargo +nightly run --example=vm -- ../../wasm32-wasi/debug/examples/simple.wasm ```
```shell $ rustup target add wasm32-wasi
$ cargo +nightly wasm simple $ cargo +nightly vm simple ```