wasm_streams/writable/
sys.rs

1//! Raw bindings to JavaScript objects used
2//! by a [`WritableStream`](https://developer.mozilla.org/en-US/docs/Web/API/WritableStream).
3use js_sys::{Error, Promise};
4use wasm_bindgen::prelude::*;
5
6use super::into_underlying_sink::IntoUnderlyingSink;
7
8#[wasm_bindgen]
9extern "C" {
10    /// A raw [`WritableStream`](https://developer.mozilla.org/en-US/docs/Web/API/WritableStream).
11    #[wasm_bindgen(js_name = WritableStream, typescript_type = "WritableStream")]
12    #[derive(Clone, Debug)]
13    pub type WritableStream;
14
15    #[wasm_bindgen(constructor)]
16    pub fn new() -> WritableStream;
17
18    #[wasm_bindgen(constructor)]
19    pub(crate) fn new_with_sink(sink: IntoUnderlyingSink) -> WritableStream;
20
21    #[wasm_bindgen(method, getter, js_name = locked)]
22    pub fn is_locked(this: &WritableStream) -> bool;
23
24    #[wasm_bindgen(method, js_name = abort)]
25    pub fn abort(this: &WritableStream) -> Promise;
26
27    #[wasm_bindgen(method, js_name = abort)]
28    pub fn abort_with_reason(this: &WritableStream, reason: &JsValue) -> Promise;
29
30    #[wasm_bindgen(method, catch, js_name = getWriter)]
31    pub fn get_writer(this: &WritableStream) -> Result<WritableStreamDefaultWriter, Error>;
32}
33
34#[wasm_bindgen]
35extern "C" {
36    /// A raw [`WritableStreamDefaultWriter`](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultWriter).
37    #[derive(Clone, Debug)]
38    pub type WritableStreamDefaultWriter;
39
40    #[wasm_bindgen(method, getter, js_name = closed)]
41    pub fn closed(this: &WritableStreamDefaultWriter) -> Promise;
42
43    #[wasm_bindgen(method, getter, js_name = desiredSize)]
44    pub fn desired_size(this: &WritableStreamDefaultWriter) -> Option<f64>;
45
46    #[wasm_bindgen(method, getter, js_name = ready)]
47    pub fn ready(this: &WritableStreamDefaultWriter) -> Promise;
48
49    #[wasm_bindgen(method, js_name = abort)]
50    pub fn abort(this: &WritableStreamDefaultWriter) -> Promise;
51
52    #[wasm_bindgen(method, js_name = abort)]
53    pub fn abort_with_reason(this: &WritableStreamDefaultWriter, reason: &JsValue) -> Promise;
54
55    #[wasm_bindgen(method, js_name = close)]
56    pub fn close(this: &WritableStreamDefaultWriter) -> Promise;
57
58    #[wasm_bindgen(method, js_name = write)]
59    pub fn write(this: &WritableStreamDefaultWriter, chunk: JsValue) -> Promise;
60
61    #[wasm_bindgen(method, js_name = releaseLock)]
62    pub fn release_lock(this: &WritableStreamDefaultWriter);
63}