pub struct VectorDelta {
pub base_id: u16,
pub changes: Vec<DeltaChange>,
}Expand description
Represents a delta update for a vector
Fields§
§base_id: u16§changes: Vec<DeltaChange>Implementations§
Source§impl VectorDelta
impl VectorDelta
Sourcepub fn new(base_id: u16, changes: Vec<DeltaChange>) -> Self
pub fn new(base_id: u16, changes: Vec<DeltaChange>) -> Self
Create a new VectorDelta
Sourcepub fn from_vectors(
old: &Vector,
new: &Vector,
base_id: u16,
) -> Result<Self, String>
pub fn from_vectors( old: &Vector, new: &Vector, base_id: u16, ) -> Result<Self, String>
Compute delta between two vectors Only supports F32 embeddings currently
Sourcepub fn apply(&self, base: &Vector) -> Result<Vector, String>
pub fn apply(&self, base: &Vector) -> Result<Vector, String>
Apply delta to a base vector to produce updated vector
Sourcepub fn encode(&self) -> Result<Vec<u8>, Error>
pub fn encode(&self) -> Result<Vec<u8>, Error>
Encode delta to binary format Format: base_id (u16) | change_count (u16) | [(index: u16, delta: f32), …]
Sourcepub fn encoded_size(&self) -> usize
pub fn encoded_size(&self) -> usize
Get the size of the encoded delta in bytes
Sourcepub fn change_ratio(&self, total_dim: u16) -> f32
pub fn change_ratio(&self, total_dim: u16) -> f32
Calculate change ratio (percentage of values changed)
Sourcepub fn is_beneficial(&self, full_vector_size: usize) -> bool
pub fn is_beneficial(&self, full_vector_size: usize) -> bool
Check if delta is worth using vs full vector Returns true if delta is smaller than full vector encoding
Trait Implementations§
Source§impl Clone for VectorDelta
impl Clone for VectorDelta
Source§fn clone(&self) -> VectorDelta
fn clone(&self) -> VectorDelta
Returns a duplicate of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for VectorDelta
impl Debug for VectorDelta
Source§impl<'de> Deserialize<'de> for VectorDelta
impl<'de> Deserialize<'de> for VectorDelta
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for VectorDelta
impl PartialEq for VectorDelta
Source§impl Serialize for VectorDelta
impl Serialize for VectorDelta
impl StructuralPartialEq for VectorDelta
Auto Trait Implementations§
impl Freeze for VectorDelta
impl RefUnwindSafe for VectorDelta
impl Send for VectorDelta
impl Sync for VectorDelta
impl Unpin for VectorDelta
impl UnwindSafe for VectorDelta
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)