Trait AutoMerge

Source
pub trait AutoMerge: RemoteSyncHandler {
    // Provided methods
    fn auto_merge_identity<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        options: &'life1 SyncOptions,
        outcome: &'life2 mut MergeOutcome,
    ) -> Pin<Box<dyn Future<Output = Result<bool, <Self as RemoteSyncHandler>::Error>> + Send + 'async_trait>>
       where Self: Sync + 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait { ... }
    fn auto_merge_account<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        options: &'life1 SyncOptions,
        outcome: &'life2 mut MergeOutcome,
    ) -> Pin<Box<dyn Future<Output = Result<bool, <Self as RemoteSyncHandler>::Error>> + Send + 'async_trait>>
       where Self: Sync + 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait { ... }
    fn auto_merge_device<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        options: &'life1 SyncOptions,
        outcome: &'life2 mut MergeOutcome,
    ) -> Pin<Box<dyn Future<Output = Result<bool, <Self as RemoteSyncHandler>::Error>> + Send + 'async_trait>>
       where Self: Sync + 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait { ... }
    fn auto_merge<'life0, 'life1, 'async_trait>(
        &'life0 self,
        options: &'life1 SyncOptions,
        conflict: MaybeConflict,
        local: SyncStatus,
        _remote: SyncStatus,
    ) -> Pin<Box<dyn Future<Output = Result<MergeOutcome, <Self as RemoteSyncHandler>::Error>> + Send + 'async_trait>>
       where Self: Sync + 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
    fn auto_merge_folder<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
        &'life0 self,
        options: &'life1 SyncOptions,
        _local_status: &'life2 SyncStatus,
        folder_id: &'life3 VaultId,
        outcome: &'life4 mut MergeOutcome,
    ) -> Pin<Box<dyn Future<Output = Result<bool, <Self as RemoteSyncHandler>::Error>> + Send + 'async_trait>>
       where Self: Sync + 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait,
             'life3: 'async_trait,
             'life4: 'async_trait { ... }
}
Expand description

Support for auto merge on sync.

Provided Methods§

Source

fn auto_merge_identity<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, options: &'life1 SyncOptions, outcome: &'life2 mut MergeOutcome, ) -> Pin<Box<dyn Future<Output = Result<bool, <Self as RemoteSyncHandler>::Error>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Auto merge identity folders.

Source

fn auto_merge_account<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, options: &'life1 SyncOptions, outcome: &'life2 mut MergeOutcome, ) -> Pin<Box<dyn Future<Output = Result<bool, <Self as RemoteSyncHandler>::Error>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Auto merge account events.

Source

fn auto_merge_device<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, options: &'life1 SyncOptions, outcome: &'life2 mut MergeOutcome, ) -> Pin<Box<dyn Future<Output = Result<bool, <Self as RemoteSyncHandler>::Error>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Auto merge device events.

Source

fn auto_merge<'life0, 'life1, 'async_trait>( &'life0 self, options: &'life1 SyncOptions, conflict: MaybeConflict, local: SyncStatus, _remote: SyncStatus, ) -> Pin<Box<dyn Future<Output = Result<MergeOutcome, <Self as RemoteSyncHandler>::Error>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Try to auto merge on conflict.

Searches the remote event log for a common ancestor and attempts to merge commits from the common ancestor with the diff that would have been applied.

Once the changes have been merged a force update of the server is necessary.

Source

fn auto_merge_folder<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, options: &'life1 SyncOptions, _local_status: &'life2 SyncStatus, folder_id: &'life3 VaultId, outcome: &'life4 mut MergeOutcome, ) -> Pin<Box<dyn Future<Output = Result<bool, <Self as RemoteSyncHandler>::Error>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait,

Auto merge a folder.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§