mod command;
pub mod config;
mod constants;
mod diag;
mod discovery;
mod environment;
mod help;
mod merge;
mod merge_input;
mod merge_observability;
mod parser;
mod parsing;
mod policy_values;
mod preferences;
mod release_help;
#[cfg(test)]
pub(crate) mod test_support;
mod validation;
mod value_parser;
pub use command::{BuildArgs, Cli, Commands, GraphArgs};
pub use config::{AccessibilityPolicy, CliConfig, ColourPolicy, EmojiPolicy, ProgressPolicy};
pub use diag::{
resolve_json_and_layers_outcome_with_env, resolve_merged_json, resolve_merged_json_with_env,
};
pub use discovery::DiscoveredLayers;
pub use discovery::DiscoveryOutcome;
pub use discovery::EnvProvider as ConfigEnvProvider;
pub use discovery::StdEnvProvider as ConfigStdEnvProvider;
pub use discovery::record_discovery_outcome;
pub use help::{HelpArgs, HelpTopic};
pub use merge::{
merge_with_cached_file_layers, merge_with_cached_file_layers_with_observer, merge_with_config,
merge_with_config_and_env,
};
pub use merge_input::CachedMergeInput;
pub use merge_observability::{MergeEvent, MergeObserver, TracingMergeObserver};
pub(crate) use parser::configured_command;
pub use parser::{json_hint_from_args, locale_hint_from_args, parse_with_localizer_from};
pub use release_help::ReleaseHelpCli;
pub const DISCOVERY_TOTAL: &str = "netsuke_cli_config_discovery_total";
pub const DISCOVERY_DURATION: &str = "netsuke_cli_config_discovery_duration_seconds";
pub const DISCOVERY_OUTCOME_VALUES: [&str; 2] = ["success", "error"];
pub const PATH_VALIDATION_TOTAL: &str = "netsuke_cli_path_validation_total";
pub const PATH_VALIDATION_SOURCE_VALUES: [&str; 2] = ["file", "directory"];
pub const PATH_VALIDATION_REASON_VALUES: [&str; 1] = ["non_utf8"];
#[cfg(test)]
#[path = "merge_logging_proptests.rs"]
mod merge_logging_proptests;