mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-04 02:54:00 +00:00
Rollup merge of #124429 - Enselic:document-builder, r=Mark-Simulacrum
bootstrap: Document `struct Builder` and its fields I'm exploring the code of bootstrap and had a bit of a hard time understanding exactly what `Builder` is for at first. I decided to help document it and its field to help future explorers.
This commit is contained in:
commit
088753cb9a
@ -35,13 +35,34 @@ use once_cell::sync::Lazy;
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests;
|
mod tests;
|
||||||
|
|
||||||
|
/// Builds and performs different [`Self::kind`]s of stuff and actions, taking
|
||||||
|
/// into account build configuration from e.g. config.toml.
|
||||||
pub struct Builder<'a> {
|
pub struct Builder<'a> {
|
||||||
|
/// Build configuration from e.g. config.toml.
|
||||||
pub build: &'a Build,
|
pub build: &'a Build,
|
||||||
|
|
||||||
|
/// The stage to use. Either implicitly determined based on subcommand, or
|
||||||
|
/// explicitly specified with `--stage N`. Normally this is the stage we
|
||||||
|
/// use, but sometimes we want to run steps with a lower stage than this.
|
||||||
pub top_stage: u32,
|
pub top_stage: u32,
|
||||||
|
|
||||||
|
/// What to build or what action to perform.
|
||||||
pub kind: Kind,
|
pub kind: Kind,
|
||||||
|
|
||||||
|
/// A cache of outputs of [`Step`]s so we can avoid running steps we already
|
||||||
|
/// ran.
|
||||||
cache: Cache,
|
cache: Cache,
|
||||||
|
|
||||||
|
/// A stack of [`Step`]s to run before we can run this builder. The output
|
||||||
|
/// of steps is cached in [`Self::cache`].
|
||||||
stack: RefCell<Vec<Box<dyn Any>>>,
|
stack: RefCell<Vec<Box<dyn Any>>>,
|
||||||
|
|
||||||
|
/// The total amount of time we spent running [`Step`]s in [`Self::stack`].
|
||||||
time_spent_on_dependencies: Cell<Duration>,
|
time_spent_on_dependencies: Cell<Duration>,
|
||||||
|
|
||||||
|
/// The paths passed on the command line. Used by steps to figure out what
|
||||||
|
/// to do. For example: with `./x check foo bar` we get `paths=["foo",
|
||||||
|
/// "bar"]`.
|
||||||
pub paths: Vec<PathBuf>,
|
pub paths: Vec<PathBuf>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -345,6 +345,8 @@ pub struct Config {
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
pub initial_rustfmt: RefCell<RustfmtState>,
|
pub initial_rustfmt: RefCell<RustfmtState>,
|
||||||
|
|
||||||
|
/// The paths to work with. For example: with `./x check foo bar` we get
|
||||||
|
/// `paths=["foo", "bar"]`.
|
||||||
pub paths: Vec<PathBuf>,
|
pub paths: Vec<PathBuf>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user