pub struct DeltaSync;Expand description
Stateless helper for computing and applying index deltas.
Implementations§
Source§impl DeltaSync
impl DeltaSync
Sourcepub fn compute_delta(
&self,
old_index: &IndexSnapshot,
new_index: &IndexSnapshot,
) -> IndexDelta
pub fn compute_delta( &self, old_index: &IndexSnapshot, new_index: &IndexSnapshot, ) -> IndexDelta
Compute the delta required to transform old_index into new_index.
An entry is considered added if it exists only in new_index.
An entry is removed if it exists only in old_index.
An entry is modified if it exists in both but the version number has
increased in new_index.
Sourcepub fn apply_delta(
&self,
base: &mut IndexSnapshot,
delta: &IndexDelta,
) -> Result<()>
pub fn apply_delta( &self, base: &mut IndexSnapshot, delta: &IndexDelta, ) -> Result<()>
Apply delta to base, mutating it in place.
Additions and modifications are upserted; removals are deleted.
Returns an error if a removal targets an ID that does not exist in base
(indicates a logic error in delta computation).
Sourcepub fn delta_size_bytes(&self, delta: &IndexDelta) -> u64
pub fn delta_size_bytes(&self, delta: &IndexDelta) -> u64
Estimate the serialised byte size of a delta.
Approximates: each removed ID costs 8 bytes; each added/modified entry
uses VectorEntry::approx_bytes().
Trait Implementations§
impl Copy for DeltaSync
Auto Trait Implementations§
impl Freeze for DeltaSync
impl RefUnwindSafe for DeltaSync
impl Send for DeltaSync
impl Sync for DeltaSync
impl Unpin for DeltaSync
impl UnsafeUnpin for DeltaSync
impl UnwindSafe for DeltaSync
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.