Skip to main content

ExecutionBackend

Trait ExecutionBackend 

Source
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 = ForgeResult<Workspace>> + 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 = ForgeResult<CommandOutput>> + 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 = ForgeResult<LogBundle>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait,
             'life3: 'async_trait;
}
Expand description

Execution backend trait.

Required Methods§

Source

fn kind(&self) -> ExecutionBackendKind

Source

fn prepare_workspace<'life0, 'life1, 'async_trait>( &'life0 self, fixture: &'life1 Path, ) -> Pin<Box<dyn Future<Output = ForgeResult<Workspace>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

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 = ForgeResult<CommandOutput>> + 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,

Source

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 = ForgeResult<LogBundle>> + 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".

Implementors§