1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//! RustDupe - Smart Duplicate File Finder
//!
//! A cross-platform Rust CLI application for finding and managing duplicate files
//! using content hashing (BLAKE3), with an interactive TUI for review and safe deletion.
//!
//! # Architecture
//!
//! The crate is organized into the following modules:
//!
//! - [`cli`]: Command-line argument parsing and validation
//! - [`logging`]: Logging infrastructure and initialization
//! - [`signal`]: Signal handling for graceful shutdown
//! - [`scanner`]: Directory traversal and file hashing
//! - [`duplicates`]: Duplicate detection engine
//! - [`tui`]: Interactive terminal user interface
//! - [`actions`]: File operations (delete, preview)
//! - [`cache`]: Persistent hash caching for faster rescans
//! - [`output`]: Output formatters (JSON, CSV)
// =============================================================================
// Clippy Lint Configuration
// =============================================================================
//
// We use Clippy's default warnings-as-errors (-D warnings) for CI quality gates.
// Pedantic lints are NOT enabled project-wide because they generate too many
// false positives for this codebase (e.g., doc_markdown, cast_precision_loss).
//
// Threshold configuration is in clippy.toml:
// - too-many-arguments-threshold = 7
// - too-many-lines-threshold = 150
// - cognitive-complexity-threshold = 25
// - msrv = "1.75.0"
//
// To run with pedantic lints for review (not CI):
// cargo clippy -- -W clippy::pedantic
//
// Allow specific lints with documented justification:
// `module_name_repetitions`: We prefer explicit names like `DeleteError` in `delete` module
// over generic names that lose context when imported.