pub trait ExecutionBackend: Send + Sync {
// Required methods
fn kind(&self) -> ExecutionBackendKind;
fn prepare_workspace<'life0, 'life1, 'async_trait>(
&'life0 self,
fixture: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<Workspace, RunnerError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn run_command<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'life7, 'async_trait>(
&'life0 self,
workspace: &'life1 Path,
program: &'life2 str,
args: &'life3 [&'life4 str],
env: &'life5 [(&'life6 str, &'life7 str)],
timeout_secs: u64,
) -> Pin<Box<dyn Future<Output = Result<CommandOutput, RunnerError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait,
'life7: 'async_trait;
fn collect_logs<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
fmt: &'life1 CommandOutput,
clippy: &'life2 CommandOutput,
test: &'life3 CommandOutput,
) -> Pin<Box<dyn Future<Output = Result<LogBundle, RunnerError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
}Required Methods§
fn kind(&self) -> ExecutionBackendKind
fn prepare_workspace<'life0, 'life1, 'async_trait>(
&'life0 self,
fixture: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<Workspace, RunnerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn run_command<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'life7, 'async_trait>(
&'life0 self,
workspace: &'life1 Path,
program: &'life2 str,
args: &'life3 [&'life4 str],
env: &'life5 [(&'life6 str, &'life7 str)],
timeout_secs: u64,
) -> Pin<Box<dyn Future<Output = Result<CommandOutput, RunnerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait,
'life7: 'async_trait,
fn collect_logs<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
fmt: &'life1 CommandOutput,
clippy: &'life2 CommandOutput,
test: &'life3 CommandOutput,
) -> Pin<Box<dyn Future<Output = Result<LogBundle, RunnerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".