# Struct bootstrap::core::build_steps::toolstate::ToolStateCheck

source ·

    pub struct ToolStateCheck;

## Trait Implementations§

source§

### impl Clone for ToolStateCheck

source§

#### fn clone(&self) -> ToolStateCheck

Returns a copy of the value. Read more
1.0.0 · source§

#### fn clone_from(&mut self, source: &Self)

Performs copy-assignment from `source`. Read more
source§

### impl Debug for ToolStateCheck

source§

#### fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

### impl Hash for ToolStateCheck

source§

#### fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given `Hasher`. Read more
1.3.0 · source§

#### fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given `Hasher`. Read more
source§

### impl PartialEq for ToolStateCheck

source§

#### fn eq(&self, other: &ToolStateCheck) -> bool

This method tests for `self` and `other` values to be equal, and is used by `==`.
1.0.0 · source§

#### fn ne(&self, other: &Rhs) -> bool

This method tests for `!=`. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

### impl Step for ToolStateCheck

source§

#### fn run(self, builder: &Builder<'_>)

Checks tool state status.

This is intended to be used in the `checktools.sh` script. To use this, set `save-toolstates` in `config.toml` so that tool status will be saved to a JSON file. Then, run `x.py test --no-fail-fast` for all of the tools to populate the JSON file. After that is done, this command can be run to check for any status failures, and exits with an error if there are any.

This also handles publishing the results to the `history` directory of the toolstate repo https://github.com/rust-lang-nursery/rust-toolstate if the env var `TOOLSTATE_PUBLISH` is set. Note that there is a separate step of updating the `latest.json` file and creating GitHub issues and comments in `src/ci/publish_toolstate.sh`, which is only performed on master. (The shell/python code is intended to be migrated here eventually.)

The rules for failure are:

- If the PR modifies a tool, the status must be test-pass. NOTE: There is intent to change this, see https://github.com/rust-lang/rust/issues/65000.
- All “stable” tools must be test-pass on the stable or beta branches.
- During beta promotion week, a PR is not allowed to “regress” a stable tool. That is, the status is not allowed to get worse (test-pass to test-fail or build-fail).

§

#### type Output = ()

`PathBuf` when directories are created or to return a `Compiler` once it’s been assembled.
source§

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

When bootstrap is passed a set of paths, this controls whether this rule will execute. However, it does not get called in a “default” context when we are not passed any paths; in that case, `make_run` is called directly.
source§

#### fn make_run(run: RunConfig<'_>)

Builds up a “root” rule, either as a default rule or from a path passed to us. Read more
source§

#### const DEFAULT: bool = false

Whether this step is run by default as part of its respective phase. `true` here can still be overwritten by `should_run` calling `default_condition`.
source§

#### const ONLY_HOSTS: bool = false

If true, then this rule should be skipped if –target was specified, but –host was not
source§

### impl Copy for ToolStateCheck

source§

### impl Eq for ToolStateCheck

source§

### impl StructuralPartialEq for ToolStateCheck

## Auto Trait Implementations§

§

### impl Freeze for ToolStateCheck

§

### impl RefUnwindSafe for ToolStateCheck

§

### impl Send for ToolStateCheck

§

### impl Sync for ToolStateCheck

§

### impl Unpin for ToolStateCheck

§

### impl UnwindSafe for ToolStateCheck

## Blanket Implementations§

source§

### impl<T> Any for T
where T: 'static + ?Sized,

source§

#### fn type_id(&self) -> TypeId

Gets the `TypeId` of `self`. Read more
source§

### impl<T> Borrow<T> for T
where T: ?Sized,

source§

#### fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

### impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

#### fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

### impl<T> From<T> for T

source§

#### fn from(t: T) -> T

Returns the argument unchanged.

source§

### impl<T, U> Into<U> for T
where U: From<T>,

source§

#### fn into(self) -> U

Calls `U::from(self)`.

That is, this conversion is whatever the implementation of `From<T> for U` chooses to do.

§

### impl<T> Pointable for T

§

#### const ALIGN: usize = _

The alignment of pointer.
§

#### type Init = T

The type for initializers.
§

#### unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

#### unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

#### unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

#### unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

### impl<T> Same for T

§

#### type Output = T

Should always be `Self`
source§

### impl<T> ToOwned for T
where T: Clone,

§

#### type Owned = T

The resulting type after obtaining ownership.
source§

#### fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

#### fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

### impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

#### type Error = Infallible

The type returned in the event of a conversion error.
source§

#### fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

### impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

#### type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

#### fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.

## 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: 0 bytes