What changed, and why it matters
This commit is a straightforward internal code cleanup in Trezor's build tooling. It moves a data structure and two helper methods from one Rust source file to another and updates callers accordingly. There is no change to user-facing behavior, no change to cryptographic or security-sensitive code, and no indication of a vulnerability fix.
No security action required. Treat as normal maintenance/refactoring.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch refactors core/embed/xtask build helpers. ResolvedBuildFeatures and the resolve_features/configure_cargo methods are relocated from args.rs to feature_resolver.rs, and cargo.rs now calls feature_resolver::configure_cargo directly. The logic inside the moved functions is unchanged. Stats: +9/-19 across 3 files.
Changed components
core/embed/xtask/src/args.rscore/embed/xtask/src/cargo.rscore/embed/xtask/src/feature_resolver.rsInspect captured patch +9 / −19
diff --git a/core/embed/xtask/src/args.rs b/core/embed/xtask/src/args.rs
index af22be31..40d402d0 100644
--- a/core/embed/xtask/src/args.rs
+++ b/core/embed/xtask/src/args.rs
@@ -1,16 +1,8 @@
-use std::process;
-
use anyhow::{Result, anyhow};
use clap::{Args, Parser, Subcommand, ValueEnum};
pub use crate::model::Model;
-pub struct ResolvedBuildFeatures {
- pub features: Vec<String>,
- pub target_triple: Option<&'static str>,
- pub board_header: String,
-}
-
#[derive(ValueEnum, Debug, Clone, Copy, PartialEq, Eq)]
pub enum Project {
Bootloader,
@@ -286,14 +278,6 @@ impl BuildArgs {
"release"
}
}
-
- pub fn resolve_features(&self) -> Result<ResolvedBuildFeatures> {
- crate::feature_resolver::resolve_features(self)
- }
-
- pub fn configure_cargo(&self, cmd: &mut process::Command) -> Result<()> {
- crate::feature_resolver::configure_cargo(self, cmd)
- }
}
#[derive(Args, Debug)]
diff --git a/core/embed/xtask/src/cargo.rs b/core/embed/xtask/src/cargo.rs
index a7d2710c..04ebbcfe 100644
--- a/core/embed/xtask/src/cargo.rs
+++ b/core/embed/xtask/src/cargo.rs
@@ -4,7 +4,7 @@ use anyhow::{Context, Result, ensure};
use owo_colors::OwoColorize;
use crate::args::{BuildArgs, Project, TestArgs};
-use crate::{artifacts, helpers, memusage, postbuild, prebuild};
+use crate::{artifacts, feature_resolver, helpers, memusage, postbuild, prebuild};
pub fn build(args: BuildArgs) -> Result<()> {
build_impl(args.clone(), false)?;
@@ -169,7 +169,7 @@ fn run_cargo_subcommand(subcommand: &str, args: &BuildArgs) -> Result<()> {
cmd.arg(subcommand).current_dir(helpers::workspace_dir()?);
- args.configure_cargo(&mut cmd)
+ feature_resolver::configure_cargo(args, &mut cmd)
.context(format!("Failed to construct {} command", subcommand))?;
let project_name = format!("{:?}", args.project).to_lowercase();
diff --git a/core/embed/xtask/src/feature_resolver.rs b/core/embed/xtask/src/feature_resolver.rs
index 159986c7..e73db330 100644
--- a/core/embed/xtask/src/feature_resolver.rs
+++ b/core/embed/xtask/src/feature_resolver.rs
@@ -2,9 +2,15 @@ use std::process;
use anyhow::{Result, bail};
-use crate::args::{BuildArgs, ConsoleType, Project, ResolvedBuildFeatures};
+use crate::args::{BuildArgs, ConsoleType, Project};
use crate::{config, helpers};
+pub struct ResolvedBuildFeatures {
+ pub features: Vec<String>,
+ pub target_triple: Option<&'static str>,
+ pub board_header: String,
+}
+
/// Resolves cargo features and target triple from the provided CLI arguments.
pub fn resolve_features(args: &BuildArgs) -> Result<ResolvedBuildFeatures> {
let mut features: Vec<String> = vec![args.model.feature_name()];
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.