spatialrust_core/
device.rs1#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Hash)]
3#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4pub enum DeviceKind {
5 #[default]
7 Cpu,
8 Wgpu,
10 Cuda,
12}
13
14pub trait Device: core::fmt::Debug + Send + Sync + 'static {
16 fn kind(&self) -> DeviceKind;
18}
19
20#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Hash)]
22#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
23pub struct CpuDevice;
24
25impl Device for CpuDevice {
26 fn kind(&self) -> DeviceKind {
27 DeviceKind::Cpu
28 }
29}