ForceMerge

Trait ForceMerge 

Source
pub trait ForceMerge: Merge {
    // Required methods
    fn force_merge_identity<'life0, 'life1, 'async_trait>(
        &'life0 mut self,
        source: FolderDiff,
        outcome: &'life1 mut MergeOutcome,
    ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn force_merge_folder<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 mut self,
        folder_id: &'life1 VaultId,
        source: FolderDiff,
        outcome: &'life2 mut MergeOutcome,
    ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;

    // Provided methods
    fn force_merge_update<'life0, 'life1, 'async_trait>(
        &'life0 mut self,
        update_set: UpdateSet,
        outcome: &'life1 mut MergeOutcome,
    ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
       where Self: Send + 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
    fn force_merge_account<'life0, 'life1, 'async_trait>(
        &'life0 mut self,
        diff: AccountDiff,
        outcome: &'life1 mut MergeOutcome,
    ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
       where Self: Send + 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
    fn force_merge_device<'life0, 'life1, 'async_trait>(
        &'life0 mut self,
        diff: DeviceDiff,
        outcome: &'life1 mut MergeOutcome,
    ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
       where Self: Send + 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
    fn force_merge_files<'life0, 'life1, 'async_trait>(
        &'life0 mut self,
        diff: FileDiff,
        outcome: &'life1 mut MergeOutcome,
    ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
       where Self: Send + 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
}
Expand description

Types that can force merge a diff.

Force merge deletes all events from the log and applies the diff patch as a new set of events.

Use this when event logs have completely diverged and need to be rewritten.

Required Methods§

Source

fn force_merge_identity<'life0, 'life1, 'async_trait>( &'life0 mut self, source: FolderDiff, outcome: &'life1 mut MergeOutcome, ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Force merge changes to the identity folder.

Source

fn force_merge_folder<'life0, 'life1, 'life2, 'async_trait>( &'life0 mut self, folder_id: &'life1 VaultId, source: FolderDiff, outcome: &'life2 mut MergeOutcome, ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Force merge changes to a folder.

Provided Methods§

Source

fn force_merge_update<'life0, 'life1, 'async_trait>( &'life0 mut self, update_set: UpdateSet, outcome: &'life1 mut MergeOutcome, ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: Send + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Force merge from a set of updates.

Update an account from a change set of event diffs.

Overwrites all existing account data with the event logs in the change set.

Intended to be used to perform a destructive overwrite when changing the encryption cipher or other events which rewrite the account data.

Source

fn force_merge_account<'life0, 'life1, 'async_trait>( &'life0 mut self, diff: AccountDiff, outcome: &'life1 mut MergeOutcome, ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: Send + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Force merge changes to the account event log.

Source

fn force_merge_device<'life0, 'life1, 'async_trait>( &'life0 mut self, diff: DeviceDiff, outcome: &'life1 mut MergeOutcome, ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: Send + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Force merge changes to the devices event log.

Source

fn force_merge_files<'life0, 'life1, 'async_trait>( &'life0 mut self, diff: FileDiff, outcome: &'life1 mut MergeOutcome, ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: Send + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Available on crate feature files only.

Force merge changes to the files event log.

Implementors§