pub struct Config {
pub block_size: u32,
pub block_count: u32,
pub read_size: u32,
pub prog_size: u32,
pub block_cycles: i32,
pub cache_size: u32,
pub lookahead_size: u32,
pub name_max: u32,
pub file_max: u32,
pub attr_max: u32,
}
impl Config {
pub fn new(block_size: u32, block_count: u32) -> Self {
Self {
block_size,
block_count,
read_size: 16,
prog_size: 16,
block_cycles: -1,
cache_size: 0,
lookahead_size: 0,
name_max: 255,
file_max: i32::MAX as u32,
attr_max: 1022,
}
}
pub(crate) fn resolve_cache_size(&self) -> u32 {
if self.cache_size > 0 {
self.cache_size
} else {
self.block_size
}
}
pub(crate) fn resolve_lookahead_size(&self) -> u32 {
if self.lookahead_size > 0 {
self.lookahead_size
} else {
self.block_size
}
}
}