pub mod cache;
pub mod cache_clean;
pub mod concurrency;
pub mod execution;
pub mod output;
use crate::settings::cache::CacheSettings;
use crate::settings::concurrency::ConcurrencySettings;
use crate::settings::execution::ExecutionSettings;
use crate::settings::output::OutputSettings;
#[derive(Debug, Clone, Default, PartialEq, Eq)]
pub struct WorkspaceSettings {
pub cache: CacheSettings,
pub concurrency: ConcurrencySettings,
pub output: OutputSettings,
pub execution: ExecutionSettings,
}
#[cfg(test)]
mod tests {
use std::time::Duration;
use crate::settings::WorkspaceSettings;
use crate::settings::cache::HashAlgo;
use crate::settings::concurrency::ConcurrencyDefault;
use crate::settings::output::OutputMode;
#[test]
fn default_workspace_settings_match_cfg_defaults() {
let ws = WorkspaceSettings::default();
assert_eq!(ws.cache.hash, HashAlgo::Blake3);
assert_eq!(ws.concurrency.default, ConcurrencyDefault::Auto);
assert!(ws.concurrency.tags.is_empty());
assert_eq!(ws.output.mode, OutputMode::Live);
assert_eq!(
ws.execution.cancel_grace.as_duration(),
Duration::from_secs(5)
);
}
}