pub struct IndexSnapshot {
pub version: u32,
pub dimension: usize,
pub ef_construction: usize,
pub m: usize,
pub entries: Vec<IndexEntry>,
pub layer_connections: Vec<Vec<Vec<u32>>>,
pub metadata_map: HashMap<String, String>,
pub created_at: u64,
pub entry_point: Option<u32>,
}Expand description
Serializable snapshot of the complete HNSW index state
Captures every field needed to reconstruct an identical index at load time.
The layer_connections tensor encodes the sparse adjacency lists of the
multi-layer graph: layer_connections[layer][node_id] is the sorted list of
neighbor IDs at that layer.
Fields§
§version: u32Format version — must equal SNAPSHOT_VERSION
dimension: usizeVector dimension of every entry
ef_construction: usizeefConstruction parameter used when building the index
m: usizeMaximum number of bi-directional connections per layer (M parameter)
entries: Vec<IndexEntry>Indexed vectors in insertion order
layer_connections: Vec<Vec<Vec<u32>>>Adjacency lists: layer_connections[layer][node_id] → neighbor IDs
metadata_map: HashMap<String, String>Map from CID string to arbitrary JSON metadata
created_at: u64Unix timestamp (seconds) at snapshot creation
entry_point: Option<u32>Node ID of the HNSW entry-point (top-layer entry node), if any
Implementations§
Trait Implementations§
Source§impl Clone for IndexSnapshot
impl Clone for IndexSnapshot
Source§fn clone(&self) -> IndexSnapshot
fn clone(&self) -> IndexSnapshot
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for IndexSnapshot
impl Debug for IndexSnapshot
Source§impl<'de> Deserialize<'de> for IndexSnapshot
impl<'de> Deserialize<'de> for IndexSnapshot
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for IndexSnapshot
impl RefUnwindSafe for IndexSnapshot
impl Send for IndexSnapshot
impl Sync for IndexSnapshot
impl Unpin for IndexSnapshot
impl UnsafeUnpin for IndexSnapshot
impl UnwindSafe for IndexSnapshot
Blanket Implementations§
impl<T> Allocation for T
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.