use crate::math::{neighbors::neighbor::Neighbor, point::Point, FloatNumber};
pub trait NeighborSearch<T, const N: usize>
where
T: FloatNumber,
{
#[allow(dead_code)]
fn search(&self, query: &Point<T, N>, k: usize) -> Vec<Neighbor<T>>;
fn search_nearest(&self, query: &Point<T, N>) -> Option<Neighbor<T>>;
fn search_radius(&self, query: &Point<T, N>, radius: T) -> Vec<Neighbor<T>>;
}