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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
use js_sys::{Function, Object};
use wasm_bindgen::prelude::*;

#[wasm_bindgen(module = "events")]
extern {
    #[wasm_bindgen(extends = Object)]
    #[derive(Clone, Debug)]
    pub type EventEmitter;

    #[wasm_bindgen(constructor)]
    pub fn new() -> EventEmitter;

    #[wasm_bindgen(method, getter, js_name = "defaultMaxListeners")]
    pub fn default_max_listeners(this: &EventEmitter) -> f64;

    #[wasm_bindgen(method, setter, js_name = "defaultMaxListeners")]
    pub fn set_default_max_listeners(this: &EventEmitter, value: f64);

    #[wasm_bindgen(method, js_name = "addListener")]
    pub fn add_listener(this: &EventEmitter, event_name: &str, listener: &Function) -> EventEmitter;

    #[wasm_bindgen(method, variadic)]
    pub fn emit(this: &EventEmitter, event_name: &str, args: Box<[JsValue]>) -> bool;

    #[wasm_bindgen(method, js_name = "eventNames")]
    pub fn event_names(this: &EventEmitter) -> Box<[JsValue]>;

    #[wasm_bindgen(method, js_name = "getMaxListeners")]
    pub fn get_max_listeners(this: &EventEmitter);

    #[wasm_bindgen(method, js_name = "listenerCount")]
    pub fn listener_count(this: &EventEmitter) -> f64;

    #[wasm_bindgen(method)]
    pub fn listeners(this: &EventEmitter, event_name: &str) -> Box<[JsValue]>;

    #[wasm_bindgen(method)]
    pub fn off(this: &EventEmitter, event_name: &str, listener: &Function) -> EventEmitter;

    #[wasm_bindgen(method, js_name = "on")]
    pub fn on(this: &EventEmitter, event_name: &str, listener: &Function) -> EventEmitter;

    #[wasm_bindgen(method, js_name = "once")]
    pub fn once(this: &EventEmitter, event_name: &str, listener: &Function) -> EventEmitter;

    #[wasm_bindgen(method, js_name = "prependListener")]
    pub fn prepend_listener(this: &EventEmitter, event_name: &str, listener: &Function) -> EventEmitter;

    #[wasm_bindgen(method, js_name = "prependOnceListener")]
    pub fn prepend_once_listener(this: &EventEmitter, event_name: &str, listener: &Function) -> EventEmitter;

    #[wasm_bindgen(method, js_name = "removeAllListeners")]
    pub fn remove_all_listeners(this: &EventEmitter, event_name: Option<&str>) -> EventEmitter;

    #[wasm_bindgen(method, js_name = "removeListener")]
    pub fn remove_listener(this: &EventEmitter, event_name: &str, listener: &Function) -> EventEmitter;

    #[wasm_bindgen(method, js_name = "setMaxListeners")]
    pub fn set_max_listeners(this: &EventEmitter, n: f64) -> EventEmitter;

    #[wasm_bindgen(method, js_name = "rawListeners")]
    pub fn raw_listeners(this: &EventEmitter, event_name: &str) -> Box<[JsValue]>;
}