cargo_mate/cmd/
optimize.rs1use anyhow::Result;
2use crate::captain::optimize;
3use crate::cmd::smune::OptimizeAction;
4pub fn handle_optimize(action: OptimizeAction) -> Result<()> {
5 let optimizer = optimize::BuildOptimizer::new(None)?;
6 match action {
7 OptimizeAction::Aggressive => {
8 optimizer.optimize_build(optimize::OptimizationProfile::Aggressive)?;
9 }
10 OptimizeAction::Balanced => {
11 optimizer.optimize_build(optimize::OptimizationProfile::Balanced)?;
12 }
13 OptimizeAction::Conservative => {
14 optimizer.optimize_build(optimize::OptimizationProfile::Conservative)?;
15 }
16 OptimizeAction::Custom {
17 jobs,
18 incremental,
19 opt_level,
20 debug_level,
21 codegen_units,
22 } => {
23 let incremental_bool = incremental.to_lowercase() == "true";
24 let profile = optimize::OptimizationProfile::Custom {
25 jobs,
26 incremental: incremental_bool,
27 opt_level,
28 debug_level,
29 codegen_units,
30 };
31 optimizer.optimize_build(profile)?;
32 }
33 OptimizeAction::Status => {
34 optimizer.show_status()?;
35 }
36 OptimizeAction::Recommendations => {
37 optimizer.show_recommendations()?;
38 }
39 OptimizeAction::Restore => {
40 optimizer.restore_backup()?;
41 }
42 }
43 Ok(())
44}