Skip to main content

script_webgpu/
lib.rs

1/* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
5#![cfg_attr(crown, feature(register_tool))]
6// Register the linter `crown`, which is the Servo-specific linter for the script crate.
7#![cfg_attr(crown, register_tool(crown))]
8
9pub mod datablock;
10pub mod gpu;
11pub mod gpuadapter;
12pub mod gpuadapterinfo;
13pub mod gpubindgroup;
14pub mod gpubindgrouplayout;
15pub mod gpubuffer;
16pub mod gpubufferusage;
17pub mod gpucolorwrite;
18pub mod gpucommandbuffer;
19pub mod gpucompilationinfo;
20pub mod gpucompilationmessage;
21pub mod gpuconvert;
22pub mod gpudevicelostinfo;
23pub mod gpumapmode;
24pub mod gpurenderbundle;
25pub mod gpushaderstage;
26pub mod gpusupportedfeatures;
27pub mod gpusupportedlimits;
28pub mod gputextureusage;
29pub mod identityhub;
30pub mod traits;
31pub mod wgsllanguagefeatures;
32
33pub(crate) use js::gc::Traceable as JSTraceable;
34pub(crate) use jstraceable_derive::JSTraceable;
35pub(crate) use script_bindings::reflector::{DomObject, MutDomObject, Reflector};
36pub(crate) use script_bindings::trace::CustomTraceable;
37
38pub(crate) use crate::dom::bindings::inheritance::HasParent;
39
40// Reexports
41pub(crate) mod dom {
42    pub(crate) mod types {}
43    pub(crate) mod bindings {
44        pub(crate) use script_bindings::*;
45    }
46}
47
48/// Generated JS-Rust bindings.
49#[allow(missing_docs, non_snake_case)]
50pub(crate) mod codegen {
51    #[expect(unused)]
52    pub(crate) mod Bindings {
53        use std::ptr;
54
55        use js::context::JSContext;
56        use js::gc::HandleObject;
57        pub(crate) use script_bindings::DomTypes;
58        use script_bindings::conversions::IDLInterface;
59        use script_bindings::reflector::DomObjectWrap;
60        pub(crate) use script_bindings::reflector::Reflector;
61        use script_bindings::root::{Dom, DomRoot, Root};
62        use script_bindings::utils::DOMClass;
63
64        use crate::gpu::GPU;
65        use crate::gpuadapter::GPUAdapter;
66        use crate::gpuadapterinfo::GPUAdapterInfo;
67        use crate::gpubindgroup::GPUBindGroup;
68        use crate::gpubindgrouplayout::GPUBindGroupLayout;
69        use crate::gpubuffer::GPUBuffer;
70        use crate::gpubufferusage::GPUBufferUsage;
71        use crate::gpucolorwrite::GPUColorWrite;
72        use crate::gpucommandbuffer::GPUCommandBuffer;
73        use crate::gpucompilationinfo::GPUCompilationInfo;
74        use crate::gpucompilationmessage::GPUCompilationMessage;
75        use crate::gpudevicelostinfo::GPUDeviceLostInfo;
76        use crate::gpumapmode::GPUMapMode;
77        use crate::gpurenderbundle::GPURenderBundle;
78        use crate::gpushaderstage::GPUShaderStage;
79        use crate::gpusupportedfeatures::GPUSupportedFeatures;
80        use crate::gpusupportedlimits::GPUSupportedLimits;
81        use crate::gputextureusage::GPUTextureUsage;
82        use crate::wgsllanguagefeatures::WGSLLanguageFeatures;
83        include!(concat!(
84            env!("OUT_DIR"),
85            "/ConcreteBindings/WebGPUBinding.rs"
86        ));
87    }
88}