use hurrycurry_protocol::glam::Vec2; use std::{collections::HashMap, hash::Hash}; // TODO stub implementation. please implement pub struct SpatialIndex { entries: HashMap, } impl SpatialIndex { pub fn update_entry(&mut self, id: T, position: Vec2) { self.entries.insert(id, position); } pub fn remove_entry(&mut self, id: T) { self.entries.remove(&id); } pub fn all(&self, mut cb: impl FnMut(T, Vec2)) { for (&e, &pos) in &self.entries { cb(e, pos) } } pub fn query(&self, _position: Vec2, _radius: f32, cb: impl FnMut(T, Vec2)) { self.all(cb) } } impl Default for SpatialIndex { fn default() -> Self { Self { entries: Default::default(), } } }