diff options
Diffstat (limited to 'ext/webgpu/src/error.rs')
-rw-r--r-- | ext/webgpu/src/error.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/ext/webgpu/src/error.rs b/ext/webgpu/src/error.rs index 55ef223a1..41d7d6cf3 100644 --- a/ext/webgpu/src/error.rs +++ b/ext/webgpu/src/error.rs @@ -5,7 +5,6 @@ use serde::Serialize; use std::convert::From; use std::error::Error; use std::fmt; -use std::fmt::Write; use wgpu_core::binding_model::CreateBindGroupError; use wgpu_core::binding_model::CreateBindGroupLayoutError; use wgpu_core::binding_model::CreatePipelineLayoutError; @@ -24,6 +23,8 @@ use wgpu_core::device::DeviceError; use wgpu_core::pipeline::CreateComputePipelineError; use wgpu_core::pipeline::CreateRenderPipelineError; use wgpu_core::pipeline::CreateShaderModuleError; +#[cfg(feature = "surface")] +use wgpu_core::present::ConfigureSurfaceError; use wgpu_core::resource::BufferAccessError; use wgpu_core::resource::CreateBufferError; use wgpu_core::resource::CreateQuerySetError; @@ -36,9 +37,7 @@ fn fmt_err(err: &(dyn Error + 'static)) -> String { let mut e = err.source(); while let Some(source) = e { - // No error possible, unwrap is fine here. - // https://github.com/rust-lang/rust/blob/1.47.0/library/alloc/src/string.rs#L2414-L2427 - write!(output, ": {source}").unwrap(); + output.push_str(&format!(": {source}")); e = source.source(); } @@ -281,6 +280,13 @@ impl From<ClearError> for WebGpuError { } } +#[cfg(feature = "surface")] +impl From<ConfigureSurfaceError> for WebGpuError { + fn from(err: ConfigureSurfaceError) -> Self { + WebGpuError::Validation(fmt_err(&err)) + } +} + #[derive(Debug)] pub struct DomExceptionOperationError { pub msg: String, |