in cas_object/src/cas_chunk_format.rs [66:89]
fn validate(&self) -> Result<(), CasObjectError> {
let _ = self.get_compression_scheme()?;
if self.version > CURRENT_VERSION {
return Err(CasObjectError::FormatError(anyhow!(
"chunk header version too high at {}, current version is {}",
self.version,
CURRENT_VERSION
)));
}
if self.get_compressed_length() as usize > MAXIMUM_CHUNK_SIZE * 2 {
return Err(CasObjectError::FormatError(anyhow!(
"chunk header compressed length too large at {}, maximum: {MAXIMUM_CHUNK_SIZE}",
self.get_compressed_length()
)));
}
// the max chunk size is strictly enforced
if self.get_uncompressed_length() as usize > MAXIMUM_CHUNK_SIZE {
return Err(CasObjectError::FormatError(anyhow!(
"chunk header uncompressed length too large at {}, maximum: {MAXIMUM_CHUNK_SIZE}",
self.get_uncompressed_length()
)));
}
Ok(())
}