import {Rwasm} from "../../js/src/index.js";
function multiplyExample({ instance }) {
let result = instance.exports.multiply(3, 4);
console.log(`[JS] Multiplication result: ${result}`);
}
function dataUploadExample({ instance }) {
let bufferPointer = instance.exports.get_buffer_pointer(0);
let data = new Uint8Array([ 10, 20, 30, 40, 50 ]);
const u8 = new Uint8Array(instance.exports.memory.buffer, bufferPointer, data.length);
for (let i = 0; i < data.length; i++) {
u8[i] = data[i];
}
instance.exports.handle_data_upload_example(data.length);
}
const functions = {
console_log: (message) => {
console.log(`[WASM] ${message}`);
},
console_error: (message) => {
console.error(message);
},
request_data_example: (message, bufferId) => {
message = message.toUpperCase();
const messageAsBytes = Rwasm.stringToUint8Array(message);
return wasm.sendUint8Array(messageAsBytes, bufferId);
}
};
const path = "/rs/target/wasm32-unknown-unknown/release/examples/main.wasm";
const wasm = new Rwasm(path, functions);
wasm.on("load", () => {
multiplyExample(wasm);
dataUploadExample(wasm);
});