Skip to main content

cargo_mate/
scrub.rs

1use anyhow::Result;
2use std::path::PathBuf;
3use crate::cmd::smune::ScrubAction;
4#[derive(Debug, Clone)]
5pub struct ScrubOptions {
6    pub dry_run: bool,
7    pub verbose: bool,
8    pub start_dir: PathBuf,
9    pub resume_from: Option<String>,
10    pub min_depth: usize,
11    pub max_depth: usize,
12    pub jobs: usize,
13    pub min_size: Option<u64>,
14    pub sort_by_size: bool,
15    pub export_json: Option<PathBuf>,
16    pub interactive: bool,
17    pub exclude_patterns: Vec<String>,
18    pub stats_only: bool,
19}
20pub struct CargoScrubber {
21    options: ScrubOptions,
22}
23impl CargoScrubber {
24    pub fn new(options: ScrubOptions) -> Self {
25        Self { options }
26    }
27    pub fn scrub(&self) -> Result<()> {
28        println!("🧹 Cargo Scrubber called with options:");
29        println!("   - Dry run: {}", self.options.dry_run);
30        println!("   - Verbose: {}", self.options.verbose);
31        println!("   - Start dir: {}", self.options.start_dir.display());
32        println!("   - Min depth: {}", self.options.min_depth);
33        println!("   - Max depth: {}", self.options.max_depth);
34        println!("   - Jobs: {}", self.options.jobs);
35        Ok(())
36    }
37}