1use wasm_bindgen::prelude::*;
2
3use crate::global::EventTarget;
4
5#[wasm_bindgen]
6extern "C" {
7 #[wasm_bindgen(extends=::js_sys::Object, js_name=AbortController)]
8 #[derive(Debug, PartialEq, Eq)]
9 pub type AbortController;
10
11 #[wasm_bindgen(constructor, js_class=AbortController)]
12 pub fn new() -> AbortController;
13
14 #[wasm_bindgen(structural, method, getter, js_class=AbortController, js_name=signal)]
15 pub fn signal(this: &AbortController) -> AbortSignal;
16
17 #[wasm_bindgen(method, structural, js_class=AbortController, js_name=abort)]
18 pub fn abort(this: &AbortController, reason: JsValue);
19}
20
21#[wasm_bindgen]
22extern "C" {
23 #[wasm_bindgen(extends = EventTarget, extends=::js_sys::Object, js_name=AbortSignal)]
24 #[derive(Debug, PartialEq, Eq)]
25 pub type AbortSignal;
26
27 #[wasm_bindgen(structural, method, getter, js_class=AbortSignal, js_name=aborted)]
28 pub fn aborted(this: &AbortSignal) -> bool;
29
30 #[wasm_bindgen(structural, method, getter, js_class=AbortSignal, js_name=reason)]
31 pub fn reason(this: &AbortSignal) -> JsValue;
32
33 #[wasm_bindgen(static_method_of=AbortSignal, js_name=abort)]
34 pub fn abort(reason: JsValue) -> AbortSignal;
35}