use crate::settings::cache_clean::CacheCleanSettings;
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Hash)]
pub enum HashAlgo {
#[default]
Blake3,
Sha256,
}
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Hash)]
pub struct CacheSettings {
pub hash: HashAlgo,
pub clean: CacheCleanSettings,
}
#[cfg(test)]
mod tests {
use crate::settings::cache::{CacheSettings, HashAlgo};
#[test]
fn hash_algo_default_is_blake3() {
assert_eq!(HashAlgo::default(), HashAlgo::Blake3);
}
#[test]
fn hash_algo_variants_are_distinct() {
assert_ne!(HashAlgo::Blake3, HashAlgo::Sha256);
}
#[test]
fn cache_settings_default_uses_blake3() {
assert_eq!(CacheSettings::default().hash, HashAlgo::Blake3);
}
#[test]
fn cache_settings_carry_chosen_algo() {
let cs = CacheSettings {
hash: HashAlgo::Sha256,
..CacheSettings::default()
};
assert_eq!(cs.hash, HashAlgo::Sha256);
}
}