diff options
| author | Jakub Beránek <berykubik@gmail.com> | 2025-07-07 23:06:18 +0200 |
|---|---|---|
| committer | Jakub Beránek <berykubik@gmail.com> | 2025-07-07 23:06:18 +0200 |
| commit | 8a195efa1e38021dd4a83d884861b5822bb6afc6 (patch) | |
| tree | 0a14b64dda83f2ed6ff4d8cfc0497b20a77c69a4 | |
| parent | c720f49c46ec3e70bbc2bbb3e0dd1fe7fc0a47f2 (diff) | |
| download | rust-8a195efa1e38021dd4a83d884861b5822bb6afc6.tar.gz rust-8a195efa1e38021dd4a83d884861b5822bb6afc6.zip | |
Make it possible to attach opaque string metadata to `StepMetadata`
| -rw-r--r-- | src/bootstrap/src/core/builder/mod.rs | 9 | ||||
| -rw-r--r-- | src/bootstrap/src/core/builder/tests.rs | 5 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/bootstrap/src/core/builder/mod.rs b/src/bootstrap/src/core/builder/mod.rs index b96a988cde3..72e5728f2c2 100644 --- a/src/bootstrap/src/core/builder/mod.rs +++ b/src/bootstrap/src/core/builder/mod.rs @@ -146,6 +146,8 @@ pub struct StepMetadata { target: TargetSelection, built_by: Option<Compiler>, stage: Option<u32>, + /// Additional opaque string printed in the metadata + metadata: Option<String>, } impl StepMetadata { @@ -170,7 +172,7 @@ impl StepMetadata { } fn new(name: &'static str, target: TargetSelection, kind: Kind) -> Self { - Self { name, kind, target, built_by: None, stage: None } + Self { name, kind, target, built_by: None, stage: None, metadata: None } } pub fn built_by(mut self, compiler: Compiler) -> Self { @@ -183,6 +185,11 @@ impl StepMetadata { self } + pub fn with_metadata(mut self, metadata: String) -> Self { + self.metadata = Some(metadata); + self + } + pub fn get_stage(&self) -> Option<u32> { self.stage.or(self .built_by diff --git a/src/bootstrap/src/core/builder/tests.rs b/src/bootstrap/src/core/builder/tests.rs index 1d5690a8197..9433e15f6ff 100644 --- a/src/bootstrap/src/core/builder/tests.rs +++ b/src/bootstrap/src/core/builder/tests.rs @@ -1587,7 +1587,7 @@ impl ExecutedSteps { } fn fuzzy_metadata_eq(executed: &StepMetadata, to_match: &StepMetadata) -> bool { - let StepMetadata { name, kind, target, built_by: _, stage: _ } = executed; + let StepMetadata { name, kind, target, built_by: _, stage: _, metadata } = executed; *name == to_match.name && *kind == to_match.kind && *target == to_match.target } @@ -1648,6 +1648,9 @@ fn render_metadata(metadata: &StepMetadata) -> String { } let stage = metadata.get_stage().map(|stage| format!("{stage} ")).unwrap_or_default(); write!(record, "{} {stage}<{}>", metadata.name, normalize_target(metadata.target)); + if let Some(metadata) = &metadata.metadata { + write!(record, " {metadata}"); + } record } |
