pub trait PluginRuntimeAdapter<E>: Send + Syncwhere
E: PluginEvent,{
// Required methods
fn activate_with_replay<'life0, 'async_trait>(
&'life0 self,
targets: Vec<Box<dyn Target<E> + Send + Sync>>,
) -> Pin<Box<dyn Future<Output = RuntimeActivation<E>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn replace_runtime_targets<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
runtime: &'life1 mut TargetRuntimeManager<E>,
replay_workers: &'life2 mut ReplayWorkerManager,
activation: RuntimeActivation<E>,
) -> Pin<Box<dyn Future<Output = Result<(), TargetError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn stop_replay_workers<'life0, 'life1, 'async_trait>(
&'life0 self,
replay_workers: &'life1 mut ReplayWorkerManager,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn snapshot_runtime_status(
&self,
runtime: &TargetRuntimeManager<E>,
replay_workers: &ReplayWorkerManager,
) -> RuntimeStatusSnapshot;
fn snapshot_runtime_health<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime: &'life1 TargetRuntimeManager<E>,
) -> Pin<Box<dyn Future<Output = Vec<RuntimeTargetHealthSnapshot>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn shutdown<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
runtime: &'life1 mut TargetRuntimeManager<E>,
replay_workers: &'life2 mut ReplayWorkerManager,
) -> Pin<Box<dyn Future<Output = Result<(), TargetError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
}Expand description
Shared runtime contract for target plugins.
Required Methods§
fn activate_with_replay<'life0, 'async_trait>(
&'life0 self,
targets: Vec<Box<dyn Target<E> + Send + Sync>>,
) -> Pin<Box<dyn Future<Output = RuntimeActivation<E>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn replace_runtime_targets<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
runtime: &'life1 mut TargetRuntimeManager<E>,
replay_workers: &'life2 mut ReplayWorkerManager,
activation: RuntimeActivation<E>,
) -> Pin<Box<dyn Future<Output = Result<(), TargetError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn stop_replay_workers<'life0, 'life1, 'async_trait>(
&'life0 self,
replay_workers: &'life1 mut ReplayWorkerManager,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn snapshot_runtime_status( &self, runtime: &TargetRuntimeManager<E>, replay_workers: &ReplayWorkerManager, ) -> RuntimeStatusSnapshot
fn snapshot_runtime_health<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime: &'life1 TargetRuntimeManager<E>,
) -> Pin<Box<dyn Future<Output = Vec<RuntimeTargetHealthSnapshot>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn shutdown<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
runtime: &'life1 mut TargetRuntimeManager<E>,
replay_workers: &'life2 mut ReplayWorkerManager,
) -> Pin<Box<dyn Future<Output = Result<(), TargetError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".