diff options
Diffstat (limited to 'components/script/dom/webgpu/gpudevicelostinfo.rs')
-rw-r--r-- | components/script/dom/webgpu/gpudevicelostinfo.rs | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/components/script/dom/webgpu/gpudevicelostinfo.rs b/components/script/dom/webgpu/gpudevicelostinfo.rs new file mode 100644 index 00000000000..ea33986a84f --- /dev/null +++ b/components/script/dom/webgpu/gpudevicelostinfo.rs @@ -0,0 +1,55 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +#![allow(dead_code)] + +use dom_struct::dom_struct; + +use crate::dom::bindings::codegen::Bindings::WebGPUBinding::{ + GPUDeviceLostInfoMethods, GPUDeviceLostReason, +}; +use crate::dom::bindings::reflector::{reflect_dom_object, Reflector}; +use crate::dom::bindings::root::DomRoot; +use crate::dom::bindings::str::DOMString; +use crate::dom::globalscope::GlobalScope; + +#[dom_struct] +pub struct GPUDeviceLostInfo { + reflector_: Reflector, + message: DOMString, + reason: GPUDeviceLostReason, +} + +impl GPUDeviceLostInfo { + fn new_inherited(message: DOMString, reason: GPUDeviceLostReason) -> Self { + Self { + reflector_: Reflector::new(), + message, + reason, + } + } + + pub fn new( + global: &GlobalScope, + message: DOMString, + reason: GPUDeviceLostReason, + ) -> DomRoot<Self> { + reflect_dom_object( + Box::new(GPUDeviceLostInfo::new_inherited(message, reason)), + global, + ) + } +} + +impl GPUDeviceLostInfoMethods<crate::DomTypeHolder> for GPUDeviceLostInfo { + /// <https://gpuweb.github.io/gpuweb/#dom-gpudevicelostinfo-message> + fn Message(&self) -> DOMString { + self.message.clone() + } + + /// <https://gpuweb.github.io/gpuweb/#dom-gpudevicelostinfo-reason> + fn Reason(&self) -> GPUDeviceLostReason { + self.reason + } +} |