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
//! Unified public API surface for `perl-workspace-index`.
//!
//! This module defines the crate's stable "import once" entry-point for callers
//! that only need discovery, folder parsing, and ignore-policy helpers.
//! Re-exports are intentionally explicit (no glob exports) so generated docs stay
//! navigable and type conflicts are avoided.
//!
//! # Why a dedicated API module?
//!
//! `monitoring` and `state_machine` both expose similarly named types
//! (`IndexStateKind`, `DegradationReason`, etc.). Re-exporting everything from
//! crate root would create ambiguous imports for downstream crates. By keeping a
//! curated public surface in `api`, consumers can opt into just the common
//! workspace-bootstrap utilities without pulling in overlapping lifecycle types.
//!
//! # Typical usage
//!
//! ```rust
//! use perl_workspace_index::api::{
//! discover_perl_files, extract_workspace_folder_uris, is_skipped_dir_name,
//! };
//!
//! let _folders = extract_workspace_folder_uris(&[]);
//! let _is_noise = is_skipped_dir_name("target");
//! let _result = discover_perl_files(std::path::Path::new("."));
//! ```
// Discovery public API
pub use crate;
// Folder public API
pub use crate;
// Ignore public API
pub use crate;