vox_geometry_rust/
nearest_neighbor_query_engine2.rs1use crate::vector2::Vector2D;
10
11pub struct NearestNeighborQueryResult2<T> {
13 pub item: Option<T>,
14 pub distance: f64,
15}
16
17impl<T> NearestNeighborQueryResult2<T> {
18 pub fn new() -> NearestNeighborQueryResult2<T> {
19 return NearestNeighborQueryResult2 {
20 item: None,
21 distance: f64::MAX,
22 };
23 }
24}
25
26pub trait NearestNeighborDistanceFunc2<T>: FnMut(&T, &Vector2D) -> f64 {}
28
29impl<T, Super: FnMut(&T, &Vector2D) -> f64> NearestNeighborDistanceFunc2<T> for Super {}
30
31pub trait NearestNeighborQueryEngine2<T> {
33 fn nearest<Callback>(&self, pt: &Vector2D,
35 distance_func: &mut Callback) -> NearestNeighborQueryResult2<T>
36 where Callback: NearestNeighborDistanceFunc2<T>;
37}