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§
Sourcefn 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_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.
Sourcefn 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,
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§
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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.
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,
files only.Force merge changes to the files event log.