bevy/crates/bevy_input/src/axis.rs
Joshua J. Bouw c9acef04e3
Ahash constructor extensions and HashMap / HashSet (#790)
Ahash constructor extensions and HashMap / HashSet
2020-11-10 17:06:55 -08:00

36 lines
654 B
Rust

use bevy_utils::{AHashExt, HashMap};
use std::hash::Hash;
#[derive(Debug)]
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)
}
}