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}