chrome_sys/runtime/
port.rs

1use crate::bindings::Sender;
2use js_sys::Object;
3use wasm_bindgen::prelude::*;
4
5#[wasm_bindgen]
6extern "C" {
7
8    #[wasm_bindgen(extends = Object)]
9    #[derive(Debug)]
10    pub type Port;
11
12    #[wasm_bindgen(method, getter)]
13    pub fn sender(this: &Port) -> Sender;
14
15    #[wasm_bindgen(method, getter)]
16    pub fn name(this: &Port) -> Option<String>;
17
18    #[wasm_bindgen(method, getter, js_name = "onMessage")]
19    pub fn on_message(this: &Port) -> PortOnMessage;
20
21    #[wasm_bindgen(method, getter, js_name = "onDisconnect")]
22    pub fn on_disconnect(this: &Port) -> PortOnDisconnect;
23
24    #[wasm_bindgen(method, js_name = "postMessage")]
25    pub fn post_message(this: &Port, value: JsValue);
26
27    #[wasm_bindgen(extends = Object)]
28    #[derive(Debug)]
29    pub type PortOnMessage;
30
31    #[wasm_bindgen(method, js_name = "addListener")]
32    pub fn add_listener(this: &PortOnMessage, closure: &Closure<dyn FnMut(JsValue) -> JsValue>);
33
34    #[wasm_bindgen(extends = Object)]
35    #[derive(Debug)]
36    pub type PortOnDisconnect;
37
38    #[wasm_bindgen(method, js_name = "addListener")]
39    pub fn add_listener(this: &PortOnDisconnect, closure: &Closure<dyn FnMut(JsValue) -> JsValue>);
40
41}