pub struct ShouldRun<'a> {
pub builder: &'a Builder<'a>,
kind: Kind,
paths: BTreeSet<PathSet>,
default_to_suites_only: bool,
}Expand description
Builder that allows steps to register command-line paths/aliases that should cause those steps to be run.
For example, if the user invokes ./x test compiler or ./x doc unstable-book,
this allows bootstrap to determine what steps “compiler” or “unstable-book”
correspond to.
Fields§
§builder: &'a Builder<'a>§kind: Kind§paths: BTreeSet<PathSet>§default_to_suites_only: boolImplementations§
Source§impl<'a> ShouldRun<'a>
impl<'a> ShouldRun<'a>
fn new(builder: &'a Builder<'_>, kind: Kind) -> ShouldRun<'a>
Sourcepub(crate) fn crate_or_deps(self, root_crate_name: &str) -> Self
pub(crate) fn crate_or_deps(self, root_crate_name: &str) -> Self
The corresponding step should run if the bootstrap command-line selects the given crate or any of its (local) dependencies.
Delegates to Self::crate_or_deps_filtered with a filter that accepts all crates.
Sourcepub(crate) fn crate_or_deps_filtered(
self,
root_crate_name: &str,
crate_filter_fn: impl Fn(&Crate) -> bool,
) -> Self
pub(crate) fn crate_or_deps_filtered( self, root_crate_name: &str, crate_filter_fn: impl Fn(&Crate) -> bool, ) -> Self
The corresponding step should run if the bootstrap command-line selects the given crate or any of its (local) dependencies, not counting any crates rejected by the given filter function.
make_run will be called a single time with all matching command-line paths.
pub fn alias(self, alias: &str) -> Self
fn assert_valid_path(&self, path: &str)
Sourcepub fn path(self, path: &str) -> Self
pub fn path(self, path: &str) -> Self
A single path
Must be an on-disk path; use alias for names that do not
correspond to on-disk paths.
Sourcepub fn selectors(self, paths: &[&str]) -> Self
pub fn selectors(self, paths: &[&str]) -> Self
Multiple on-disk paths that should select the same unit of work.
Sourcefn is_suite_path(&self, requested_path: &Path) -> Option<&PathSet>
fn is_suite_path(&self, requested_path: &Path) -> Option<&PathSet>
Handles individual files (not directories) within a test suite.
pub fn suite_path(self, suite: &str) -> Self
pub fn never(self) -> ShouldRun<'a>
Sourcefn pathset_for_paths_removing_matches(
&self,
paths: &mut [CLIStepPath],
kind: Kind,
) -> Vec<PathSet>
fn pathset_for_paths_removing_matches( &self, paths: &mut [CLIStepPath], kind: Kind, ) -> Vec<PathSet>
Given a set of requested paths, return the subset which match the Step for this ShouldRun,
removing the matches from paths.
NOTE: this returns multiple PathSets to allow for the possibility of multiple units of work
within the same step. For example, test::Crate allows testing multiple crates in the same
cargo invocation, which are put into separate sets because they aren’t aliases.
The reason we return PathSet instead of PathBuf is to allow for aliases that mean the same thing
(for now, just all_krates and paths, but we may want to add an aliases function in the future?)
Sourcepub(crate) fn default_to_suites_only(self) -> Self
pub(crate) fn default_to_suites_only(self) -> Self
When generating pathsets for a step that is being run “by default” (i.e. when running bootstrap without an explicit command-line path), discard any paths that were not registered as test suites.
This is basically a hack to make path-based skipping work properly for
coverage tests, since otherwise the coverage-map and coverage-run
aliases would prevent ./x test --skip=tests from skipping them.
Sourcefn default_pathsets(&self) -> Vec<PathSet>
fn default_pathsets(&self) -> Vec<PathSet>
When the corresponding step is run “by default” (without explicit command-line paths), act as though the user had explicitly specified these paths.
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for ShouldRun<'a>
impl<'a> !Send for ShouldRun<'a>
impl<'a> !Sync for ShouldRun<'a>
impl<'a> !UnwindSafe for ShouldRun<'a>
impl<'a> Freeze for ShouldRun<'a>
impl<'a> Unpin for ShouldRun<'a>
impl<'a> UnsafeUnpin for ShouldRun<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Pointable for T
impl<T> Pointable for T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 40 bytes