paraxis 0.9.2

A simple rock-solid mathematics library.
Documentation
use crate::maths::vec::Vector;
use num_traits::Num;
use std::{collections::HashMap, hash::Hash};

pub struct Grid<D: Num + Eq + Hash + Clone, T: Clone, const N: usize> {
    data: HashMap<Vector<D, N>, T>,
}
impl<D: Num + Eq + Hash + Clone, T: Clone, const N: usize> Grid<D, T, N> {
    pub fn new() -> Self {
        Self {
            data: HashMap::new(),
        }
    }
    pub fn from_slice(slice: &[(Vector<D, N>, T)]) -> Self {
        let data = slice.to_vec().into_iter().collect();
        Self { data }
    }
    pub fn from_vec(vec: Vec<(Vector<D, N>, T)>) -> Self {
        let data = vec.into_iter().collect();
        Self { data }
    }
    pub fn insert(&mut self, position: Vector<D, N>, data: T) {
        self.data.insert(position, data);
    }
    pub fn remove(&mut self, position: &Vector<D, N>) {
        self.data.remove(position);
    }
}