1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
use std::{collections::HashMap, hash::Hash}; pub struct Axis<T> { axis_data: HashMap<T, f32>, } impl<T> Default for Axis<T> where T: Copy + Eq + Hash, { fn default() -> Self { Axis { axis_data: HashMap::new(), } } } impl<T> Axis<T> where T: Copy + Eq + Hash, { pub fn set(&mut self, axis: T, value: f32) -> Option<f32> { self.axis_data.insert(axis, value) } pub fn get(&self, axis: &T) -> Option<f32> { self.axis_data.get(axis).copied() } pub fn remove(&mut self, axis: &T) -> Option<f32> { self.axis_data.remove(axis) } }