spatialrust_gpu/
device.rs1use spatialrust_core::{Device, DeviceKind};
2
3pub trait GpuDevice: Device {}
5
6#[derive(Clone, Debug, PartialEq, Eq, Hash)]
8pub struct WgpuDevice {
9 label: String,
10}
11
12impl WgpuDevice {
13 #[must_use]
15 pub fn new(label: impl Into<String>) -> Self {
16 Self { label: label.into() }
17 }
18
19 #[must_use]
21 pub fn label(&self) -> &str {
22 &self.label
23 }
24}
25
26impl Device for WgpuDevice {
27 fn kind(&self) -> DeviceKind {
28 DeviceKind::Wgpu
29 }
30}
31
32impl GpuDevice for WgpuDevice {}
33
34#[cfg(feature = "gpu-wgpu")]
35mod wgpu_backend {
36 use super::WgpuDevice;
37
38 impl WgpuDevice {
39 #[must_use]
43 pub fn default_adapter() -> Self {
44 Self::new("wgpu-default")
45 }
46 }
47}