use wasm_bindgen::prelude::*;
#[wasm_bindgen]
extern "C" {
#[wasm_bindgen(js_namespace = __exclosured)]
fn emit_event(event: &str, payload: &str);
#[wasm_bindgen(js_namespace = __exclosured)]
fn broadcast_event(channel: &str, data: &str);
}
pub fn emit(event: &str, payload: &str) {
emit_event(event, payload);
}
pub fn broadcast(channel: &str, data: &str) {
broadcast_event(channel, data);
}
#[no_mangle]
pub extern "C" fn alloc(size: usize) -> *mut u8 {
if size == 0 {
return core::mem::align_of::<u8>() as *mut u8;
}
let mut buf = Vec::with_capacity(size);
let ptr = buf.as_mut_ptr();
core::mem::forget(buf);
ptr
}
#[no_mangle]
pub extern "C" fn dealloc(ptr: *mut u8, size: usize) {
if size == 0 {
return;
}
unsafe {
drop(Vec::from_raw_parts(ptr, 0, size));
}
}