Skip to main content

CommandLineStep

Trait CommandLineStep 

Source
pub trait CommandLineStep:
    'static
    + Clone
    + Debug
    + PartialEq
    + Eq
    + Hash {
    type Output: Clone;

    const IS_HOST: bool = false;

    // Required methods
    fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_>;
    fn make_run(_run: RunConfig<'_>);
    fn run(self, builder: &Builder<'_>) -> Self::Output;

    // Provided methods
    fn is_default_step(_builder: &Builder<'_>) -> bool { ... }
    fn metadata(&self) -> Option<StepMetadata> { ... }
}
Expand description

A Step that can be selected by command-line arguments.

A blanket impl allows every CommandLineStep to be used as a Step. This is arguably nicer than having it be a subtrait, because it avoids the need for two separate impl blocks per command-line-step type.

Provided Associated Constants§

Source

const IS_HOST: bool = false

If this value is true, then the values of run.target passed to the make_run function of this Step will be determined based on the --host flag. If this value is false, then they will be determined based on the --target flag.

A corollary of the above is that if this is set to true, then the step will be skipped if --target was specified, but --host was explicitly set to ‘’ (empty string).

Required Associated Types§

Source

type Output: Clone

Result type of Step::run.

Required Methods§

Source

fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_>

Called to allow steps to register the command-line paths that should cause them to run.

Source

fn make_run(_run: RunConfig<'_>)

Called directly by the bootstrap Step handler when not triggered indirectly by other Steps using Builder::ensure. For example, ./x.py test bootstrap runs this for test::Bootstrap. Similarly, ./x.py test runs it for every step that is listed by the describe macro in Builder::get_step_descriptions.

Source

fn run(self, builder: &Builder<'_>) -> Self::Output

Used as the implementation of Step::run.

Provided Methods§

Source

fn is_default_step(_builder: &Builder<'_>) -> bool

Should this step run when the user invokes bootstrap with a subcommand but no paths/aliases?

For example, ./x test runs all default test steps, and ./x dist runs all default dist steps.

Most steps are always default or always non-default, and just return true or false. But some steps are conditionally default, based on bootstrap config or the availability of ambient tools.

If the underlying check should not be performed repeatedly (e.g. because it probes command-line tools), consider memoizing its outcome via a field in the builder.

Source

fn metadata(&self) -> Option<StepMetadata>

Used as the implementation of Step::metadata.

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§

Source§

impl CommandLineStep for Analysis

Source§

impl CommandLineStep for Assemble

Source§

impl CommandLineStep for AssemblyLlvm

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::Bootstrap

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::Bootstrap

Source§

impl CommandLineStep for bootstrap::core::build_steps::dist::Bootstrap

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::Bootstrap

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::Bootstrap

Source§

impl CommandLineStep for BootstrapPy

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::BuildHelper

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::BuildHelper

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::BuildManifest

Source§

impl CommandLineStep for bootstrap::core::build_steps::dist::BuildManifest

Source§

impl CommandLineStep for bootstrap::core::build_steps::run::BuildManifest

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::BuildManifest

Source§

impl CommandLineStep for BuildStd

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::BumpStage0

Source§

impl CommandLineStep for bootstrap::core::build_steps::run::BumpStage0

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::BumpStage0

Source§

impl CommandLineStep for CI

Source§

impl CommandLineStep for bootstrap::core::build_steps::dist::Cargo

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::Cargo

Source§

impl CommandLineStep for bootstrap::core::build_steps::install::Cargo

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::Cargo

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::Cargo

Source§

impl CommandLineStep for CargoBook

Source§

impl CommandLineStep for CargoClippy

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::CargoMiri

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::CargoMiri

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::CargoMiri

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::CargoMiri

Source§

impl CommandLineStep for CargoTest

Source§

impl CommandLineStep for Cargofmt

Source§

impl CommandLineStep for Cargotest

Source§

impl CommandLineStep for CleanAll

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::Clippy

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::Clippy

Source§

impl CommandLineStep for bootstrap::core::build_steps::dist::Clippy

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::Clippy

Source§

impl CommandLineStep for bootstrap::core::build_steps::install::Clippy

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::Clippy

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::Clippy

Source§

impl CommandLineStep for ClippyBook

Source§

impl CommandLineStep for CodegenCranelift

Source§

impl CommandLineStep for CodegenGCC

Source§

impl CommandLineStep for CodegenGcc

Source§

impl CommandLineStep for CodegenLlvm

Source§

impl CommandLineStep for CodegenUnits

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::CollectLicenseMetadata

Source§

impl CommandLineStep for bootstrap::core::build_steps::run::CollectLicenseMetadata

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::CollectLicenseMetadata

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::CollectLicenseMetadata

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::Compiletest

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::Compiletest

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::Compiletest

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::Compiletest

Source§

impl CommandLineStep for CompiletestTest

Source§

impl CommandLineStep for Coverage

Source§

const IS_HOST: bool = false

Source§

type Output = ()

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::CoverageDump

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::CoverageDump

Source§

impl CommandLineStep for bootstrap::core::build_steps::run::CoverageDump

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::CoverageDump

Source§

impl CommandLineStep for CoverageModeAlias

Source§

impl CommandLineStep for CoverageRunRustdoc

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::CraneliftCodegenBackend

Source§

impl CommandLineStep for bootstrap::core::build_steps::compile::CraneliftCodegenBackend

Source§

impl CommandLineStep for bootstrap::core::build_steps::dist::CraneliftCodegenBackend

Source§

impl CommandLineStep for Crashes

Source§

impl CommandLineStep for Crate

Source§

impl CommandLineStep for CrateBootstrap

Source§

impl CommandLineStep for CrateBuildHelper

Source§

impl CommandLineStep for CrateLibrustc

Source§

impl CommandLineStep for CrateRunMakeSupport

Source§

impl CommandLineStep for CrateRustdoc

Source§

impl CommandLineStep for CrateRustdocJsonTypes

Source§

impl CommandLineStep for CrtBeginEnd

Source§

impl CommandLineStep for CyclicStep

Source§

impl CommandLineStep for Debuginfo

Source§

impl CommandLineStep for Distcheck

Source§

impl CommandLineStep for bootstrap::core::build_steps::dist::Docs

Source§

impl CommandLineStep for bootstrap::core::build_steps::install::Docs

Source§

const IS_HOST: bool = false

Source§

type Output = ()

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::EditionGuide

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::EditionGuide

Source§

impl CommandLineStep for Editor

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::EmbeddedBook

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::EmbeddedBook

Source§

impl CommandLineStep for bootstrap::core::build_steps::dist::Enzyme

Source§

impl CommandLineStep for bootstrap::core::build_steps::llvm::Enzyme

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::ErrorIndex

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::ErrorIndex

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::ErrorIndex

Source§

impl CommandLineStep for Extended

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::FeaturesStatusDump

Source§

impl CommandLineStep for bootstrap::core::build_steps::run::FeaturesStatusDump

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::FeaturesStatusDump

Source§

impl CommandLineStep for bootstrap::core::build_steps::dist::Gcc

Source§

impl CommandLineStep for bootstrap::core::build_steps::gcc::Gcc

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::GccCodegenBackend

Source§

impl CommandLineStep for bootstrap::core::build_steps::compile::GccCodegenBackend

Source§

impl CommandLineStep for bootstrap::core::build_steps::dist::GccCodegenBackend

Source§

impl CommandLineStep for GccDev

Source§

impl CommandLineStep for GenerateCompletions

Source§

impl CommandLineStep for bootstrap::core::build_steps::run::GenerateCopyright

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::GenerateCopyright

Source§

impl CommandLineStep for GenerateHelp

Source§

impl CommandLineStep for bootstrap::core::build_steps::run::GenerateWindowsSys

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::GenerateWindowsSys

Source§

impl CommandLineStep for Hook

Source§

impl CommandLineStep for HtmlCheck

Source§

impl CommandLineStep for HtmlChecker

Source§

impl CommandLineStep for Incremental

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::IntrinsicTest

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::IntrinsicTest

Source§

impl CommandLineStep for JsonDocCk

Source§

impl CommandLineStep for JsonDocLint

Source§

impl CommandLineStep for JsonDocs

Source§

impl CommandLineStep for Jsondocck

Source§

impl CommandLineStep for Jsondoclint

Source§

impl CommandLineStep for Libunwind

Source§

impl CommandLineStep for Linkcheck

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::Linkchecker

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::Linkchecker

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::LintDocs

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::LintDocs

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::LintDocs

Source§

impl CommandLineStep for Lld

Source§

impl CommandLineStep for LldWrapper

Source§

impl CommandLineStep for Llvm

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::LlvmBitcodeLinker

Source§

impl CommandLineStep for bootstrap::core::build_steps::dist::LlvmBitcodeLinker

Source§

impl CommandLineStep for bootstrap::core::build_steps::install::LlvmBitcodeLinker

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::LlvmBitcodeLinker

Source§

impl CommandLineStep for bootstrap::core::build_steps::dist::LlvmTools

Source§

impl CommandLineStep for bootstrap::core::build_steps::install::LlvmTools

Source§

impl CommandLineStep for Mingw

Source§

impl CommandLineStep for MirOpt

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::Miri

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::Miri

Source§

impl CommandLineStep for bootstrap::core::build_steps::dist::Miri

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::Miri

Source§

impl CommandLineStep for bootstrap::core::build_steps::install::Miri

Source§

impl CommandLineStep for bootstrap::core::build_steps::run::Miri

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::Miri

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::Miri

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::MiroptTestTools

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::MiroptTestTools

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::Nomicon

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::Nomicon

Source§

impl CommandLineStep for Offload

Source§

impl CommandLineStep for OmpOffload

Source§

impl CommandLineStep for OptDist

Source§

impl CommandLineStep for OptimizedDist

Source§

impl CommandLineStep for PlainSourceTarball

Source§

impl CommandLineStep for PlainSourceTarballGpl

Source§

impl CommandLineStep for Pretty

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::Priroda

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::Priroda

Source§

impl CommandLineStep for Profile

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::Reference

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::Reference

Source§

impl CommandLineStep for Releases

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::RemoteTestClient

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::RemoteTestClient

Source§

impl CommandLineStep for RemoteTestClientTests

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::RemoteTestServer

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::RemoteTestServer

Source§

impl CommandLineStep for bootstrap::core::build_steps::run::ReplaceVersionPlaceholder

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::ReplaceVersionPlaceholder

Source§

impl CommandLineStep for ReproducibleArtifacts

Source§

impl CommandLineStep for RunMake

Source§

impl CommandLineStep for RunMakeCargo

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::RunMakeSupport

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::RunMakeSupport

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::RunMakeSupport

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::RustAnalyzer

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::RustAnalyzer

Source§

impl CommandLineStep for bootstrap::core::build_steps::dist::RustAnalyzer

Source§

impl CommandLineStep for bootstrap::core::build_steps::install::RustAnalyzer

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::RustAnalyzer

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::RustAnalyzer

Source§

impl CommandLineStep for RustAnalyzerProcMacroSrv

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::RustByExample

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::RustByExample

Source§

impl CommandLineStep for RustDev

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::RustInstaller

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::RustInstaller

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::RustInstaller

Source§

impl CommandLineStep for RustOffload

Source§

impl CommandLineStep for Rustbook

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::Rustc

Source§

impl CommandLineStep for bootstrap::core::build_steps::clean::Rustc

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::Rustc

Source§

impl CommandLineStep for bootstrap::core::build_steps::compile::Rustc

Source§

impl CommandLineStep for bootstrap::core::build_steps::dist::Rustc

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::Rustc

Source§

impl CommandLineStep for bootstrap::core::build_steps::install::Rustc

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::RustcBook

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::RustcBook

Source§

impl CommandLineStep for RustcCodegenCranelift

Source§

impl CommandLineStep for bootstrap::core::build_steps::dist::RustcDev

Source§

impl CommandLineStep for bootstrap::core::build_steps::install::RustcDev

Source§

impl CommandLineStep for RustcDocs

Source§

impl CommandLineStep for RustcPerf

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::Rustdoc

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::Rustdoc

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::Rustdoc

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::Rustdoc

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::RustdocBook

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::RustdocBook

Source§

impl CommandLineStep for RustdocGUI

Source§

impl CommandLineStep for RustdocGUITest

Source§

impl CommandLineStep for RustdocGuiTest

Source§

impl CommandLineStep for RustdocHtml

Source§

impl CommandLineStep for RustdocJSNotStd

Source§

impl CommandLineStep for RustdocJSStd

Source§

impl CommandLineStep for RustdocJson

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::RustdocTheme

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::RustdocTheme

Source§

impl CommandLineStep for RustdocUi

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::Rustfmt

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::Rustfmt

Source§

impl CommandLineStep for bootstrap::core::build_steps::dist::Rustfmt

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::Rustfmt

Source§

impl CommandLineStep for bootstrap::core::build_steps::install::Rustfmt

Source§

impl CommandLineStep for bootstrap::core::build_steps::run::Rustfmt

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::Rustfmt

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::Rustfmt

Source§

impl CommandLineStep for Sanitizers

Source§

impl CommandLineStep for bootstrap::core::build_steps::dist::Src

Source§

impl CommandLineStep for bootstrap::core::build_steps::install::Src

Source§

impl CommandLineStep for Standalone

Source§

impl CommandLineStep for StartupObjects

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::Std

Source§

impl CommandLineStep for bootstrap::core::build_steps::clean::Std

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::Std

Source§

impl CommandLineStep for bootstrap::core::build_steps::compile::Std

Source§

impl CommandLineStep for bootstrap::core::build_steps::dist::Std

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::Std

Source§

impl CommandLineStep for bootstrap::core::build_steps::install::Std

Source§

const IS_HOST: bool = false

Source§

type Output = ()

Source§

impl CommandLineStep for StdSemverCheck

Source§

impl CommandLineStep for StdarchVerify

Source§

impl CommandLineStep for StyleGuide

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::TestFloatParse

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::TestFloatParse

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::TestFloatParse

Source§

impl CommandLineStep for TestHelpers

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::TheBook

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::TheBook

Source§

impl CommandLineStep for bootstrap::core::build_steps::check::Tidy

Source§

impl CommandLineStep for bootstrap::core::build_steps::clippy::Tidy

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::Tidy

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::Tidy

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::Tidy

Source§

impl CommandLineStep for TierCheck

Source§

impl CommandLineStep for ToolStateCheck

Source§

impl CommandLineStep for Ui

Source§

impl CommandLineStep for UiFullDeps

Source§

impl CommandLineStep for bootstrap::core::build_steps::run::UnicodeTableGenerator

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::UnicodeTableGenerator

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::UnstableBook

Source§

impl CommandLineStep for bootstrap::core::build_steps::test::UnstableBook

Source§

impl CommandLineStep for bootstrap::core::build_steps::doc::UnstableBookGen

Source§

impl CommandLineStep for bootstrap::core::build_steps::tool::UnstableBookGen

Source§

impl CommandLineStep for Vendor

Source§

impl CommandLineStep for WasmComponentLd