dualsense_tools/state/
accel.rs1use std::ops::{Deref, DerefMut};
2
3use glam::Vec3;
4
5use crate::state::SpatialSensor;
6
7#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, Hash)]
9pub struct Accel<V>(SpatialSensor<V>);
10
11impl<T> Accel<T> {
12 pub fn new(x: T, y: T, z: T) -> Accel<T> {
14 Accel(SpatialSensor { x, y, z })
15 }
16
17 pub fn from_vec(v: Vec3) -> Accel<T>
19 where
20 T: From<f32>,
21 {
22 Accel(SpatialSensor {
23 x: v.x.into(),
24 y: v.y.into(),
25 z: v.z.into(),
26 })
27 }
28}
29
30impl<V> Deref for Accel<V> {
31 type Target = SpatialSensor<V>;
32
33 fn deref(&self) -> &Self::Target {
34 &self.0
35 }
36}
37
38impl<V> DerefMut for Accel<V> {
39 fn deref_mut(&mut self) -> &mut Self::Target {
40 &mut self.0
41 }
42}