Skip to main content

Executor

Trait Executor 

Source
pub trait Executor:
    Send
    + Sync
    + 'static {
    // Required method
    fn exec(
        &self,
        cmd: &ProcessBuilder,
        id: PackageId,
        target: &Target,
        mode: CompileMode,
        on_stdout_line: &mut dyn FnMut(&str) -> CargoResult<()>,
        on_stderr_line: &mut dyn FnMut(&str) -> CargoResult<()>,
    ) -> CargoResult<()>;

    // Provided methods
    fn init(&self, _build_runner: &BuildRunner<'_, '_>, _unit: &Unit) { ... }
    fn force_rebuild(&self, _unit: &Unit) -> bool { ... }
}
Expand description

A glorified callback for executing calls to rustc. Rather than calling rustc directly, we’ll use an Executor, giving clients an opportunity to intercept the build calls.

Required Methods§

Source

fn exec( &self, cmd: &ProcessBuilder, id: PackageId, target: &Target, mode: CompileMode, on_stdout_line: &mut dyn FnMut(&str) -> CargoResult<()>, on_stderr_line: &mut dyn FnMut(&str) -> CargoResult<()>, ) -> CargoResult<()>

In case of an Err, Cargo will not continue with the build process for this package.

Provided Methods§

Source

fn init(&self, _build_runner: &BuildRunner<'_, '_>, _unit: &Unit)

Called after a rustc process invocation is prepared up-front for a given unit of work (may still be modified for runtime-known dependencies, when the work is actually executed).

Source

fn force_rebuild(&self, _unit: &Unit) -> bool

Queried when queuing each unit of work. If it returns true, then the unit will always be rebuilt, independent of whether it needs to be.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§