Skip to main content

Module api

Module api 

Source
Expand description

Unified public API surface. 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

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("."));

Re-exports§

pub use crate::discovery::DiscoveryMethod;
pub use crate::discovery::DiscoveryResult;
pub use crate::discovery::discover_perl_files;
pub use crate::discovery::is_perl_discovery_path;
pub use crate::folder::WorkspaceFolderChange;
pub use crate::folder::extract_workspace_folder_change;
pub use crate::folder::extract_workspace_folder_uris;
pub use crate::folder::root_path_to_file_uri;
pub use crate::folder::workspace_folder_to_path;
pub use crate::ignore::is_skipped_dir_name;
pub use crate::ignore::path_contains_skipped_component;