web_wt_sys/webtransport/web_transport_send_stream.rs
1//! [`WebTransportSendStream`]
2//!
3//! <https://w3c.github.io/webtransport/#send-stream>
4
5use js_sys::Object;
6use wasm_bindgen::prelude::*;
7use web_sys::{DomException, WritableStream};
8
9use super::*;
10
11#[wasm_bindgen]
12extern "C" {
13 ///The `WebTransportSendStream` interface.
14 ///
15 /// <https://w3c.github.io/webtransport/#webtransportsendstream>
16 #[wasm_bindgen (extends = WritableStream, extends = Object)]
17 #[derive(Debug, Clone, PartialEq, Eq)]
18 pub type WebTransportSendStream;
19
20 /// ```webidl
21 /// attribute WebTransportSendGroup? sendGroup;
22 /// ```
23 ///
24 /// <https://w3c.github.io/webtransport/#dom-webtransportsendstream-sendgroup>
25 #[wasm_bindgen(method, getter = sendGroup)]
26 pub fn send_group(this: &WebTransportSendStream) -> Option<WebTransportSendGroup>;
27
28 /// ```webidl
29 /// attribute WebTransportSendGroup? sendGroup;
30 /// ```
31 ///
32 /// <https://w3c.github.io/webtransport/#dom-webtransportsendstream-sendgroup>
33 #[wasm_bindgen(method, setter = sendGroup, catch)]
34 pub fn set_option_send_group(
35 this: &WebTransportSendStream,
36 value: Option<WebTransportSendGroup>,
37 ) -> Result<(), DomException>;
38
39 /// ```webidl
40 /// attribute long long sendOrder;
41 /// ```
42 ///
43 /// <https://w3c.github.io/webtransport/#dom-webtransportsendstream-sendorder>
44 #[wasm_bindgen(method, getter = sendOrder)]
45 pub fn send_order(this: &WebTransportSendStream) -> i64;
46
47 /// ```webidl
48 /// attribute long long sendOrder;
49 /// ```
50 ///
51 /// <https://w3c.github.io/webtransport/#dom-webtransportsendstream-sendorder>
52 #[wasm_bindgen(method, setter = sendOrder)]
53 pub fn set_send_order(this: &WebTransportSendStream, value: i64);
54
55 /// ```webidl
56 /// Promise<WebTransportSendStreamStats> getStats();
57 /// ```
58 ///
59 /// <https://w3c.github.io/webtransport/#dom-webtransportsendstream-getstats>
60 #[wasm_bindgen(method, js_name = getStats)]
61 pub async fn get_stats(this: &WebTransportSendStream) -> WebTransportSendStreamStats;
62
63 /// ```webidl
64 /// WebTransportWriter getWriter();
65 /// ```
66 ///
67 /// <https://w3c.github.io/webtransport/#dom-webtransportsendstream-getwriter>
68 ///
69 /// This method must be implemented in the same manner as getWriter
70 /// inherited from WritableStream, except in place of creating
71 /// a WritableStreamDefaultWriter, it must instead create
72 /// a WebTransportWriter with this.
73 #[wasm_bindgen(method, js_name = getWriter, catch)]
74 pub fn get_writer(this: &WebTransportSendStream) -> Result<WebTransportWriter, DomException>;
75}
76
77impl WebTransportSendStream {
78 crate::set_option_accessors_fallible! {
79 /// ```webidl
80 /// attribute WebTransportSendGroup? sendGroup;
81 /// ```
82 ///
83 /// <https://w3c.github.io/webtransport/#dom-webtransportsendstream-sendgroup>
84 send_group: WebTransportSendGroup => DomException
85 }
86}