From d5a5b454a4670a72826882c6ce4c87d1f597767c Mon Sep 17 00:00:00 2001 From: LLLL Colonq Date: Sat, 7 Dec 2024 17:25:37 -0500 Subject: Native --- src/module.rs | 45 --------------------------------------------- 1 file changed, 45 deletions(-) delete mode 100644 src/module.rs (limited to 'src/module.rs') diff --git a/src/module.rs b/src/module.rs deleted file mode 100644 index 1fc4100..0000000 --- a/src/module.rs +++ /dev/null @@ -1,45 +0,0 @@ -use wasm_bindgen::prelude::*; - -#[wasm_bindgen] -pub fn log_info(msg: i8) { - log::info!("{:?}", msg); -} - -#[wasm_bindgen(module="/src/js/module.js")] -extern "C" { - fn js_build_interface() -> js_sys::Object; -} - -pub struct Module { - pub wasm: js_sys::WebAssembly::Instance, -} - -impl Module { - pub async fn new(bytes: &[u8]) -> Option { - let imp = js_build_interface(); - let o = wasm_bindgen_futures::JsFuture::from( - js_sys::WebAssembly::instantiate_buffer(bytes, &imp) - ).await.unwrap(); - let i = js_sys::Reflect::get(&o, &"instance".into()).unwrap(); - if let Ok(wasm) = i.dyn_into::() { - Some(Self { - wasm, - }) - } else { - log::info!("failed 3"); - None - } - } - pub fn call(&self, nm: &str) { - let exp = self.wasm.exports(); - if let Ok(fo) = js_sys::Reflect::get(&exp, &nm.into()) { - if let Ok(func) = fo.dyn_into::() { - let _ = func.call0(&JsValue::undefined()); - } else { - log::warn!("couldn't cast module function: {}", nm); - } - } else { - log::warn!("couldn't find module function: {}", nm); - } - } -} -- cgit v1.2.3