#[doc(hidden)] pub const FETCH_CONCURRENT_CAP: usize = 24;
#[doc(hidden)] pub const SLOW_REPO_THRESHOLD_SECS: u64 = 10;
pub const GIT_CONCURRENT_CAP: usize = 32;
pub fn get_git_concurrency(jobs: Option<usize>, sequential: bool) -> usize {
if sequential {
return 1;
}
if let Some(n) = jobs {
return n.max(1); }
let cpu_count = num_cpus::get();
cpu_count + 2
}
pub const TRUFFLE_CONCURRENT_LIMIT: usize = 1; pub const HYGIENE_CONCURRENT_LIMIT: usize = 3;
#[doc(hidden)] pub const DEFAULT_PROGRESS_BAR_LENGTH: u64 = 100;
#[doc(hidden)] pub const DEFAULT_REPO_NAME: &str = "current";
#[doc(hidden)] pub const UNKNOWN_REPO_NAME: &str = "unknown";
pub const NO_REPOS_MESSAGE: &str = "No git repositories found in current directory.";
pub const CONFIG_SYNCING_MESSAGE: &str = "checking config...";
#[doc(hidden)] pub const PROGRESS_CHARS: &str = "##-";
#[doc(hidden)] pub const PROGRESS_TEMPLATE: &str = "{prefix:.bold} {wide_msg}";
#[doc(hidden)] pub const PATH_DISPLAY_WIDTH: usize = 30;
#[doc(hidden)] pub const ERROR_MESSAGE_MAX_LENGTH: usize = 40;
#[doc(hidden)] pub const ERROR_MESSAGE_TRUNCATE_LENGTH: usize = 37;
#[doc(hidden)] pub const TIMEOUT_SECONDS_DISPLAY: u64 = 180;
#[doc(hidden)] pub const GIT_OBJECTS_CHUNK_SIZE: usize = 100;
#[doc(hidden)] pub const LARGE_FILES_DISPLAY_LIMIT: usize = 10;
#[doc(hidden)] pub const SKIP_DIRECTORIES: &[&str] = &[
"node_modules",
"vendor",
"target",
"build",
".next",
"dist",
"__pycache__",
".venv",
"venv",
];
#[doc(hidden)] pub const MAX_SCAN_DEPTH: usize = 10; #[doc(hidden)] pub const ESTIMATED_REPO_COUNT: usize = 50;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_get_git_concurrency_sequential_mode() {
assert_eq!(get_git_concurrency(None, true), 1);
assert_eq!(get_git_concurrency(Some(100), true), 1);
}
#[test]
fn test_get_git_concurrency_explicit_jobs() {
assert_eq!(get_git_concurrency(Some(5), false), 5);
assert_eq!(get_git_concurrency(Some(20), false), 20);
assert_eq!(get_git_concurrency(Some(1), false), 1);
}
#[test]
fn test_get_git_concurrency_zero_jobs_becomes_one() {
assert_eq!(get_git_concurrency(Some(0), false), 1);
}
#[test]
fn test_get_git_concurrency_default_scales_with_cpu() {
let concurrency = get_git_concurrency(None, false);
let expected = num_cpus::get() + 2;
assert_eq!(concurrency, expected);
assert!(concurrency >= 3);
}
#[test]
fn test_skip_directories_contains_common_dirs() {
assert!(SKIP_DIRECTORIES.contains(&"node_modules"));
assert!(SKIP_DIRECTORIES.contains(&"target"));
assert!(SKIP_DIRECTORIES.contains(&".venv"));
assert!(SKIP_DIRECTORIES.len() > 5, "Should skip multiple common directories");
}
}