pub struct DeltaBuffer<D> { /* private fields */ }Expand description
A ring buffer that stores recent deltas along with their versions.
When a peer requests sync, we can provide deltas since their last known version. If the gap is too large (oldest delta evicted), the peer needs a full state transfer instead.
Implementations§
Source§impl<D: Clone> DeltaBuffer<D>
impl<D: Clone> DeltaBuffer<D>
Sourcepub fn push(&mut self, version: VClock, delta: D)
pub fn push(&mut self, version: VClock, delta: D)
Push a new delta with its associated version.
Sourcepub fn deltas_since(&self, version: &VClock) -> Option<Vec<D>>
pub fn deltas_since(&self, version: &VClock) -> Option<Vec<D>>
Get all deltas since the given version.
Returns None if the version is older than or equal to our oldest evicted delta.
Returns Some(vec![]) if the peer is up-to-date.
Trait Implementations§
Source§impl<D: Clone> Clone for DeltaBuffer<D>
impl<D: Clone> Clone for DeltaBuffer<D>
Source§fn clone(&self) -> DeltaBuffer<D>
fn clone(&self) -> DeltaBuffer<D>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<D: Debug> Debug for DeltaBuffer<D>
impl<D: Debug> Debug for DeltaBuffer<D>
Source§impl<'de, D> Deserialize<'de> for DeltaBuffer<D>where
D: Deserialize<'de>,
impl<'de, D> Deserialize<'de> for DeltaBuffer<D>where
D: Deserialize<'de>,
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
Auto Trait Implementations§
impl<D> Freeze for DeltaBuffer<D>
impl<D> RefUnwindSafe for DeltaBuffer<D>where
D: RefUnwindSafe,
impl<D> Send for DeltaBuffer<D>where
D: Send,
impl<D> Sync for DeltaBuffer<D>where
D: Sync,
impl<D> Unpin for DeltaBuffer<D>where
D: Unpin,
impl<D> UnsafeUnpin for DeltaBuffer<D>
impl<D> UnwindSafe for DeltaBuffer<D>where
D: UnwindSafe,
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