use crate::data_file::DataFile;
use rand::{rng, Rng, RngCore};
pub fn size_bytes(bytes: &[u8], chunk_size: usize) -> usize {
chunk_size * (bytes.len() as f64 / chunk_size as f64).ceil() as usize
}
pub fn random_bytes(n: usize) -> Vec<u8> {
let mut bytes = vec![0; n];
rng().fill_bytes(&mut bytes);
bytes
}
pub fn random_max_file_size(base: usize) -> usize {
base + ((base as f64 * rng().random_range(0.05..1.05)) as usize)
}
impl DataFile {
pub(crate) fn free_chunk_count(&self) -> usize {
self.free_chunk_offsets.len()
}
pub(crate) fn used_chunk_count(&self) -> usize {
let mut count = 0;
for (_, data_block) in self.data_blocks.iter() {
count += data_block.chunk_offsets.len();
}
count
}
}