use crate::system::{GriddedPosition, Storage}; pub struct VectorStorage { backing: Vec, grid_size: u32, dimension: u32, } impl VectorStorage { pub fn new(grid_size: u32, dimension: u32) -> VectorStorage { VectorStorage { grid_size, dimension, backing: vec![false; (grid_size as usize).pow(dimension) as usize] } } } impl Storage

for VectorStorage { fn is_occupied(&self, position: &P) -> bool { return self.backing[position.linear_index(self.grid_size)]; } fn deposit(&mut self, position: &P) { self.backing[position.linear_index(self.grid_size)] = true; } }