sos_protocol

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_files<'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_files<'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,

Available on crate feature files only.

Auto merge file 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§

Source§

impl AutoMerge for LinkedAccount

Available on crate feature integration only.