1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
use crate::{class::EventEmitter, interface::Timer}; use js_sys::Function; use wasm_bindgen::prelude::*; #[wasm_bindgen] extern { #[wasm_bindgen(extends = EventEmitter)] pub type Domain; #[wasm_bindgen(method, js_name = "add")] pub fn add_with_emitter(this: &Domain, emitter: &EventEmitter); #[wasm_bindgen(method, js_name = "add")] pub fn add_with_timer(this: &Domain, timer: &Timer); #[wasm_bindgen(method)] pub fn bind(this: &Domain, callback: &Function) -> Function; #[wasm_bindgen(method)] pub fn intercept(this: &Domain, callback: &Function) -> Function; #[wasm_bindgen(method)] pub fn remove_with_emitter(this: &Domain, emitter: &EventEmitter); #[wasm_bindgen(method)] pub fn remove_with_timer(this: &Domain, timer: &Timer); #[wasm_bindgen(method, variadic)] pub fn run(this: &Domain, callback: &Function, args: Box<[JsValue]>) -> JsValue; }