rskiller 0.2.1

Find and clean Rust project build artifacts and caches with parallel processing
Documentation
//! # rskiller
//!
//! A Rust library for finding and cleaning Rust project build artifacts and caches.
//! 
//! This library provides functionality to scan for Rust projects, analyze their
//! build artifacts, and safely clean up target directories and other cache files.
//!
//! ## Features
//!
//! - Find Rust projects by scanning for `Cargo.toml` files
//! - Analyze build artifacts and calculate sizes
//! - Safe cleanup with project activity detection
//! - Support for Cargo workspaces
//! - Configurable scanning and filtering options
//! - Configuration file support (TOML and JSON formats)
//!
//! ## Example
//!
//! ```rust
//! use rskiller::{ProjectScanner, Cli, SortBy, Color, ConfigFormat};
//! use std::path::PathBuf;
//! 
//! #[tokio::main]
//! async fn main() -> anyhow::Result<()> {
//!     let cli = Cli {
//!         directory: Some(PathBuf::from("~/")),
//!         full: false,
//!         target: Some("target".to_string()),
//!         sort: Some(SortBy::Size),
//!         gb: false,
//!         exclude: None,
//!         exclude_hidden: false,
//!         hide_errors: false,
//!         delete_all: false,
//!         dry_run: true,
//!         list_only: true,
//!         include_cargo_cache: false,
//!         color: Some(Color::Blue),
//!         no_check_update: false,
//!         config: None,
//!         print_config: false,
//!         init_config: false,
//!         format: ConfigFormat::Toml,
//!         global: false,
//!         validate_config: None,
//!         config_info: false,
//!     };
//!     
//!     let scanner = ProjectScanner::new(cli);
//!     let projects = scanner.scan().await?;
//!     
//!     for project in &projects {
//!         println!("Project: {} - Size: {} bytes", 
//!                  project.name, 
//!                  project.total_cleanable_size());
//!     }
//!     
//!     Ok(())
//! }
//! ```

pub mod cli;
pub mod config;
pub mod scanner;
pub mod project;
pub mod ui;
pub mod utils;

// Re-export main types and functions for easier access
pub use cli::{Cli, SortBy, Color, ConfigFormat};
pub use config::{Config, ConfigLoader};
pub use scanner::ProjectScanner;
pub use project::{RustProject, BuildArtifact, ArtifactType};
pub use ui::InteractiveUI;
pub use utils::{calculate_dir_size, format_size, remove_directory};

/// Library version
pub const VERSION: &str = env!("CARGO_PKG_VERSION");

/// Default target directory name
pub const DEFAULT_TARGET: &str = "target";

/// Default search depth for project scanning
pub const DEFAULT_SEARCH_DEPTH: usize = 5;

/// Maximum search depth when scanning from home directory
pub const MAX_FULL_SEARCH_DEPTH: usize = 10;