summaryrefslogtreecommitdiff
path: root/src/module.rs
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2024-12-07 17:25:37 -0500
committerLLLL Colonq <llll@colonq>2024-12-07 17:25:37 -0500
commitd5a5b454a4670a72826882c6ce4c87d1f597767c (patch)
tree5963ed2b53063d3579019e6b22a629ac52d3b612 /src/module.rs
parentaa465e6ebee75e9e9ea03196db4dd83fde766f0a (diff)
Native
Diffstat (limited to 'src/module.rs')
-rw-r--r--src/module.rs45
1 files changed, 0 insertions, 45 deletions
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<Self> {
- 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::<js_sys::WebAssembly::Instance>() {
- 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::<js_sys::Function>() {
- let _ = func.call0(&JsValue::undefined());
- } else {
- log::warn!("couldn't cast module function: {}", nm);
- }
- } else {
- log::warn!("couldn't find module function: {}", nm);
- }
- }
-}