use std::cmp::max;
pub const DEFAULT_LEDGER_CACHE_SIZE: usize = 512;
const MIN_LEDGER_CACHE_MB: usize = 4;
pub const DEFAULT_INVALID_BLOCK_HASH_CACHE_SIZE_IN_COUNT: usize = 32 * 1024;
pub const DEFAULT_TARGET_DIFFICULTIES_CACHE_SIZE_IN_COUNT: usize = 32 * 1024;
#[derive(Debug, PartialEq)]
pub struct CacheConfig {
pub ledger: usize,
pub invalid_block_hashes_cache_size_in_count: usize,
pub target_difficulties_cache_size_in_count: usize,
}
impl Default for CacheConfig {
fn default() -> Self {
CacheConfig::new(
DEFAULT_LEDGER_CACHE_SIZE,
DEFAULT_INVALID_BLOCK_HASH_CACHE_SIZE_IN_COUNT,
DEFAULT_TARGET_DIFFICULTIES_CACHE_SIZE_IN_COUNT,
)
}
}
impl CacheConfig {
pub fn new(
ledger: usize, invalid_block_hashes_cache_size_in_count: usize,
target_difficulties_cache_size_in_count: usize,
) -> Self {
CacheConfig {
ledger,
invalid_block_hashes_cache_size_in_count,
target_difficulties_cache_size_in_count,
}
}
pub fn ledger_mb(&self) -> usize { max(self.ledger, MIN_LEDGER_CACHE_MB) }
}