Add unstable bindings for the Compression Streams API (#3752)

This commit is contained in:
daxpedda 2023-12-23 21:10:20 +01:00 committed by GitHub
parent a0707157da
commit 0069b66e16
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 168 additions and 0 deletions

View File

@ -19,6 +19,9 @@
* Add bindings for `UserActivation`.
[#3719](https://github.com/rustwasm/wasm-bindgen/pull/3719)
* Add unstable bindings for the Compression Streams API.
[#3752](https://github.com/rustwasm/wasm-bindgen/pull/3752)
### Changed
* Stabilize File System API.

View File

@ -203,6 +203,8 @@ Comment = ["CharacterData", "EventTarget", "Node"]
CompositeOperation = []
CompositionEvent = ["Event", "UiEvent"]
CompositionEventInit = []
CompressionFormat = []
CompressionStream = []
ComputedEffectTiming = []
ConnStatusDict = []
ConnectionType = []
@ -268,6 +270,7 @@ DataTransferItemList = []
DateTimeValue = []
DecoderDoctorNotification = []
DecoderDoctorNotificationType = []
DecompressionStream = []
DedicatedWorkerGlobalScope = ["EventTarget", "WorkerGlobalScope"]
DelayNode = ["AudioNode", "EventTarget"]
DelayOptions = []

View File

@ -0,0 +1,17 @@
#![allow(unused_imports)]
#![allow(clippy::all)]
use wasm_bindgen::prelude::*;
#[cfg(web_sys_unstable_apis)]
#[wasm_bindgen]
#[doc = "The `CompressionFormat` enum."]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `CompressionFormat`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum CompressionFormat {
Deflate = "deflate",
DeflateRaw = "deflate-raw",
Gzip = "gzip",
}

View File

@ -0,0 +1,55 @@
#![allow(unused_imports)]
#![allow(clippy::all)]
use super::*;
use wasm_bindgen::prelude::*;
#[cfg(web_sys_unstable_apis)]
#[wasm_bindgen]
extern "C" {
# [wasm_bindgen (extends = :: js_sys :: Object , js_name = CompressionStream , typescript_type = "CompressionStream")]
#[derive(Debug, Clone, PartialEq, Eq)]
#[doc = "The `CompressionStream` class."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/CompressionStream)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `CompressionStream`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub type CompressionStream;
#[cfg(web_sys_unstable_apis)]
#[cfg(feature = "ReadableStream")]
# [wasm_bindgen (structural , method , getter , js_class = "CompressionStream" , js_name = readable)]
#[doc = "Getter for the `readable` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/CompressionStream/readable)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `CompressionStream`, `ReadableStream`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn readable(this: &CompressionStream) -> ReadableStream;
#[cfg(web_sys_unstable_apis)]
#[cfg(feature = "WritableStream")]
# [wasm_bindgen (structural , method , getter , js_class = "CompressionStream" , js_name = writable)]
#[doc = "Getter for the `writable` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/CompressionStream/writable)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `CompressionStream`, `WritableStream`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn writable(this: &CompressionStream) -> WritableStream;
#[cfg(web_sys_unstable_apis)]
#[cfg(feature = "CompressionFormat")]
#[wasm_bindgen(catch, constructor, js_class = "CompressionStream")]
#[doc = "The `new CompressionStream(..)` constructor, creating a new instance of `CompressionStream`."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/CompressionStream/CompressionStream)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `CompressionFormat`, `CompressionStream`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn new(format: CompressionFormat) -> Result<CompressionStream, JsValue>;
}

View File

@ -0,0 +1,55 @@
#![allow(unused_imports)]
#![allow(clippy::all)]
use super::*;
use wasm_bindgen::prelude::*;
#[cfg(web_sys_unstable_apis)]
#[wasm_bindgen]
extern "C" {
# [wasm_bindgen (extends = :: js_sys :: Object , js_name = DecompressionStream , typescript_type = "DecompressionStream")]
#[derive(Debug, Clone, PartialEq, Eq)]
#[doc = "The `DecompressionStream` class."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/DecompressionStream)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `DecompressionStream`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub type DecompressionStream;
#[cfg(web_sys_unstable_apis)]
#[cfg(feature = "ReadableStream")]
# [wasm_bindgen (structural , method , getter , js_class = "DecompressionStream" , js_name = readable)]
#[doc = "Getter for the `readable` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/DecompressionStream/readable)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `DecompressionStream`, `ReadableStream`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn readable(this: &DecompressionStream) -> ReadableStream;
#[cfg(web_sys_unstable_apis)]
#[cfg(feature = "WritableStream")]
# [wasm_bindgen (structural , method , getter , js_class = "DecompressionStream" , js_name = writable)]
#[doc = "Getter for the `writable` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/DecompressionStream/writable)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `DecompressionStream`, `WritableStream`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn writable(this: &DecompressionStream) -> WritableStream;
#[cfg(web_sys_unstable_apis)]
#[cfg(feature = "CompressionFormat")]
#[wasm_bindgen(catch, constructor, js_class = "DecompressionStream")]
#[doc = "The `new DecompressionStream(..)` constructor, creating a new instance of `DecompressionStream`."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/DecompressionStream/DecompressionStream)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `CompressionFormat`, `DecompressionStream`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn new(format: CompressionFormat) -> Result<DecompressionStream, JsValue>;
}

View File

@ -1030,6 +1030,18 @@ mod gen_CompositionEventInit;
#[cfg(feature = "CompositionEventInit")]
pub use gen_CompositionEventInit::*;
#[cfg(feature = "CompressionFormat")]
#[allow(non_snake_case)]
mod gen_CompressionFormat;
#[cfg(feature = "CompressionFormat")]
pub use gen_CompressionFormat::*;
#[cfg(feature = "CompressionStream")]
#[allow(non_snake_case)]
mod gen_CompressionStream;
#[cfg(feature = "CompressionStream")]
pub use gen_CompressionStream::*;
#[cfg(feature = "ComputedEffectTiming")]
#[allow(non_snake_case)]
mod gen_ComputedEffectTiming;
@ -1420,6 +1432,12 @@ mod gen_DecoderDoctorNotificationType;
#[cfg(feature = "DecoderDoctorNotificationType")]
pub use gen_DecoderDoctorNotificationType::*;
#[cfg(feature = "DecompressionStream")]
#[allow(non_snake_case)]
mod gen_DecompressionStream;
#[cfg(feature = "DecompressionStream")]
pub use gen_DecompressionStream::*;
#[cfg(feature = "DedicatedWorkerGlobalScope")]
#[allow(non_snake_case)]
mod gen_DedicatedWorkerGlobalScope;

View File

@ -0,0 +1,17 @@
enum CompressionFormat {
"deflate",
"deflate-raw",
"gzip",
};
[Exposed=*]
interface CompressionStream {
constructor(CompressionFormat format);
};
CompressionStream includes GenericTransformStream;
[Exposed=*]
interface DecompressionStream {
constructor(CompressionFormat format);
};
DecompressionStream includes GenericTransformStream;