pub struct Update { /* private fields */ }Expand description
Update type which contains an information about all decoded blocks which are incoming from a remote peer. Since these blocks are not yet integrated into current document’s block store, they still may require repairing before doing so as they don’t contain full data about their relations.
Update is conceptually similar to a block store itself, however the work patters are different.
Implementations
sourceimpl Update
impl Update
pub fn new() -> Self
sourcepub fn state_vector(&self) -> StateVector
pub fn state_vector(&self) -> StateVector
Returns a state vector representing an upper bound of client clocks included by blocks stored in current update.
sourcepub fn merge(&mut self, other: Self)
pub fn merge(&mut self, other: Self)
Merges another update into current one. Their blocks are deduplicated and reordered.
sourcepub fn integrate(
self,
txn: &mut Transaction
) -> (Option<PendingUpdate>, Option<Update>)
pub fn integrate(
self,
txn: &mut Transaction
) -> (Option<PendingUpdate>, Option<Update>)
Integrates current update into a block store referenced by a given transaction.
If entire integration process was successful a None value is returned. Otherwise a
pending update object is returned which contains blocks that couldn’t be integrated, most
likely because there were missing blocks that are used as a dependencies of other blocks
contained in this update.
pub fn merge_updates<T>(block_stores: T) -> Update where
T: IntoIterator<Item = Update>,
Trait Implementations
impl StructuralPartialEq for Update
Auto Trait Implementations
impl !RefUnwindSafe for Update
impl !Send for Update
impl !Sync for Update
impl Unpin for Update
impl !UnwindSafe for Update
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more