#[derive(Debug, Clone)]
pub struct Config {
pub num_threads: Option<usize>,
pub dir_batch_size: usize,
}
impl Default for Config {
fn default() -> Self {
Self {
num_threads: None,
dir_batch_size: 4,
}
}
}
impl Config {
pub fn from_cli(cli: &crate::cli::Cli) -> Self {
let mut cfg = Self::default();
if let Some(threads) = cli.threads {
cfg.num_threads = Some(threads);
}
cfg
}
pub fn effective_threads(&self) -> usize {
self.num_threads.unwrap_or_else(|| {
if cfg!(target_os = "macos") {
4
} else {
num_cpus::get()
}
})
}
}