pub trait MigrationExecutionProvider: Send + Sync {
// Required methods
fn available_capabilities(&self) -> &CapabilitySet;
fn observe_managed_state<'a>(
&'a self,
lease: &'a MigrationLease,
source_candidate: &'a ManagedSchemaState,
target_candidate: &'a ManagedSchemaState,
) -> ExecutionFuture<'a, ManagedSchemaState>;
fn prepare_group<'a>(
&'a self,
lease: &'a MigrationLease,
source: &'a ManagedSchemaState,
target: &'a ManagedSchemaState,
) -> ExecutionFuture<'a, Box<dyn PreparedMigrationGroup + 'a>>;
}Expand description
Provider seam for exact managed-state observation and group transactions.
Required Methods§
Sourcefn available_capabilities(&self) -> &CapabilitySet
fn available_capabilities(&self) -> &CapabilitySet
Return the exact capabilities negotiated by this execution provider.
Sourcefn observe_managed_state<'a>(
&'a self,
lease: &'a MigrationLease,
source_candidate: &'a ManagedSchemaState,
target_candidate: &'a ManagedSchemaState,
) -> ExecutionFuture<'a, ManagedSchemaState>
fn observe_managed_state<'a>( &'a self, lease: &'a MigrationLease, source_candidate: &'a ManagedSchemaState, target_candidate: &'a ManagedSchemaState, ) -> ExecutionFuture<'a, ManagedSchemaState>
Independently observe managed state under the current active fence.
The source and target candidates supply the already-verified scope, profiles, and possible managed selections used for observation. Their fingerprint claims are not observation input.
Sourcefn prepare_group<'a>(
&'a self,
lease: &'a MigrationLease,
source: &'a ManagedSchemaState,
target: &'a ManagedSchemaState,
) -> ExecutionFuture<'a, Box<dyn PreparedMigrationGroup + 'a>>
fn prepare_group<'a>( &'a self, lease: &'a MigrationLease, source: &'a ManagedSchemaState, target: &'a ManagedSchemaState, ) -> ExecutionFuture<'a, Box<dyn PreparedMigrationGroup + 'a>>
Begin a transaction that rechecks exact source state and the active fence.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".