Struct vpsearch::Tree
[−]
[src]
pub struct Tree<Item: MetricSpace + Copy, Ownership> { /* fields omitted */ }
The VP-Tree.
Methods
impl<Item: MetricSpace<UserData=()> + Copy> Tree<Item, Owned<()>>[src]
impl<U, Item: MetricSpace<UserData=U> + Copy> Tree<Item, Owned<U>>[src]
fn find_nearest(&self, needle: &Item) -> (usize, Item::Distance)
Finds item closest to given needle (that can be any item) and Output index of the item in items array from new().
@param needle The query. @return Index of the nearest item found and the distance from the nearest item
impl<Item: MetricSpace + Copy> Tree<Item, Owned<Item::UserData>>[src]
fn new_with_user_data_owned(items: &[Item], user_data: Item::UserData) -> Self
Create a Vantage Point tree for fast nearest neighbor search.
@param items Array of items that will be searched. @param user_data Reference to any object that is passed down to item.distance()
impl<Item: MetricSpace + Copy> Tree<Item, UserDataByRef>[src]
fn new_with_user_data_ref(items: &[Item], user_data: &Item::UserData) -> Self
The tree doesn't have to own the UserData. You can keep passing it to find_nearest().
fn find_nearest(&self,
needle: &Item,
user_data: &Item::UserData)
-> (usize, Item::Distance)
needle: &Item,
user_data: &Item::UserData)
-> (usize, Item::Distance)
impl<Item: MetricSpace + Copy, Ownership> Tree<Item, Ownership>[src]
fn find_nearest_custom<ReturnBy: BestCandidate<Item>>(&self,
needle: &Item,
user_data: &Item::UserData,
best_candidate: ReturnBy)
-> ReturnBy::Output
needle: &Item,
user_data: &Item::UserData,
best_candidate: ReturnBy)
-> ReturnBy::Output
All the bells and whistles version. For best_candidate implement BestCandidate<Item> trait.