Trait HnswGraph

Source
pub trait HnswGraph {
    // Required methods
    fn entrypoint(&self) -> usize;
    fn len(&self) -> usize;
    fn node_num_levels(&self, idx: usize) -> usize;
    fn node_neighbours(
        &self,
        idx: usize,
        level: usize,
    ) -> impl Iterator<Item = (usize, VectorDistance)> + '_;
}

Required Methods§

Source

fn entrypoint(&self) -> usize

Source

fn len(&self) -> usize

Source

fn node_num_levels(&self, idx: usize) -> usize

Returns the number of levels for idx (levels are indexed 0..num_levels-1).

Source

fn node_neighbours( &self, idx: usize, level: usize, ) -> impl Iterator<Item = (usize, VectorDistance)> + '_

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl HnswGraph for PbHnswGraph

Source§

fn entrypoint(&self) -> usize

Source§

fn len(&self) -> usize

Source§

fn node_num_levels(&self, idx: usize) -> usize

Source§

fn node_neighbours( &self, idx: usize, level: usize, ) -> impl Iterator<Item = (usize, VectorDistance)> + '_

Implementors§