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}