//! Improve command implementation. //! //! Generates improve.csv — owned cars not yet in a final configuration, //! sorted by number of best tracks (descending). use top_drives::AppError; use crate::commands::{load_my_cars_or_warn, run_analysis}; use crate::output::write_improve_csv; /// Executes the improve command: generates improve.csv. pub async fn run_improve( my_cars_path: &str, cars_db_path: &str, times_dir: &str, output_dir: &str, ) -> Result<(), AppError> { let my_data = load_my_cars_or_warn(my_cars_path)?; let (_ctx, counts) = run_analysis(my_data, cars_db_path, times_dir).await?; let count = write_improve_csv(output_dir, &counts)?; if count == 0 { println!("No cars to improve — all owned cars are already in final or maxed configs."); } else { println!("Written: improve.csv ({count} cars to improve)"); } Ok(()) }