vectus/hnsw/
node.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use ndarray::Array1;

#[derive(Debug, Clone)]
pub(super) struct HNSWNode {
    pub(super) id: usize,
    pub(super) neighbors: Vec<usize>,
    pub(super) level: usize,
    pub(super) embedding: Array1<f64>,
}

impl HNSWNode {
    pub(super) fn new(embedding: Array1<f64>, id: usize) -> HNSWNode {
        HNSWNode {
            id,
            level: 0,
            neighbors: Vec::new(),
            embedding,
        }
    }
}