Skip to main content

fallow_cli/
lib.rs

1#![expect(
2    clippy::print_stdout,
3    clippy::print_stderr,
4    reason = "CLI binary produces intentional terminal output"
5)]
6
7#[allow(
8    dead_code,
9    unused_imports,
10    reason = "shared CLI library compiles bin-oriented support modules for reuse"
11)]
12mod api;
13#[allow(
14    dead_code,
15    unused_imports,
16    reason = "shared CLI library compiles bin-oriented support modules for reuse"
17)]
18pub mod audit;
19#[allow(
20    dead_code,
21    unused_imports,
22    reason = "shared CLI library compiles bin-oriented support modules for reuse"
23)]
24mod baseline;
25#[allow(
26    dead_code,
27    unused_imports,
28    reason = "shared CLI library compiles bin-oriented support modules for reuse"
29)]
30mod check;
31/// CODEOWNERS file parser and ownership lookup.
32pub mod codeowners;
33#[allow(
34    dead_code,
35    unused_imports,
36    reason = "shared CLI library compiles bin-oriented support modules for reuse"
37)]
38mod combined;
39#[allow(
40    dead_code,
41    unused_imports,
42    reason = "shared CLI library compiles bin-oriented support modules for reuse"
43)]
44mod dupes;
45
46/// Structured error output for CLI and JSON formats.
47pub mod error;
48
49#[allow(
50    dead_code,
51    unused_imports,
52    reason = "shared CLI library compiles bin-oriented support modules for reuse"
53)]
54mod fix;
55#[allow(
56    dead_code,
57    unused_imports,
58    reason = "shared CLI library compiles bin-oriented support modules for reuse"
59)]
60mod init;
61
62/// Metric and rule definitions for explainable CLI output.
63pub mod explain;
64
65#[allow(
66    dead_code,
67    unused_imports,
68    reason = "shared CLI library compiles bin-oriented support modules for reuse"
69)]
70mod health;
71/// Health / complexity analysis report types.
72pub mod health_types;
73#[allow(
74    dead_code,
75    unused_imports,
76    reason = "shared CLI library compiles bin-oriented support modules for reuse"
77)]
78mod license;
79/// Typed wrapper envelopes for duplication findings emitted by
80/// `fallow dupes --format json`. Lives here (rather than in `fallow-types`)
81/// because the bare findings live in `fallow-core` and `crates/cli/src/report/dupes_grouping.rs`.
82pub mod output_dupes;
83
84/// Typed envelope structs for the JSON output contract. Live here rather
85/// than in `fallow-types` because the body fields reach into `fallow-core`
86/// and into this crate's own `health_types`.
87pub mod output_envelope;
88
89/// Programmatic Rust API reused by the NAPI bindings.
90pub mod programmatic;
91
92/// Cross-platform path classification helpers (POSIX-style root + Windows
93/// drive prefix detection that `Path::is_absolute()` misclassifies).
94#[allow(
95    dead_code,
96    unused_imports,
97    reason = "shared CLI library compiles bin-oriented support modules for reuse; `#[expect]` would be unfulfilled because the bin (not the lib) consumes these symbols"
98)]
99mod path_util;
100
101/// Shared Rayon pool configuration for all embedded analysis entry points.
102pub(crate) mod rayon_pool;
103
104/// Regression detection: baseline comparison and tolerance checking.
105pub mod regression;
106
107/// Process-wide signal handling and scoped child-process registry.
108/// See `signal/mod.rs` for the design rationale.
109pub mod signal;
110
111/// Report formatting utilities for analysis results.
112///
113/// Exposed for snapshot testing of output formats.
114pub mod report;
115
116#[allow(
117    dead_code,
118    unused_imports,
119    reason = "shared CLI library compiles bin-oriented support modules for reuse"
120)]
121mod runtime_support;
122#[allow(
123    dead_code,
124    unused_imports,
125    reason = "shared CLI library compiles bin-oriented support modules for reuse"
126)]
127mod validate;
128#[allow(
129    dead_code,
130    unused_imports,
131    reason = "shared CLI library compiles bin-oriented support modules for reuse"
132)]
133mod vital_signs;
134
135pub use runtime_support::{AnalysisKind, GroupBy};
136pub(crate) use runtime_support::{build_ownership_resolver, load_config_for_analysis};