use super::{Checksum, CompressionFilter};
#[cfg(feature = "extract")]
use crate::entry::checksum::ChecksumMismatchError;
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
pub struct File {
pub(crate) offset: u64,
pub(crate) size: u64,
pub(crate) checksum: Checksum,
pub(crate) compression_filter: CompressionFilter,
}
impl File {
#[must_use]
#[inline]
pub const fn offset(&self) -> u64 {
self.offset
}
#[must_use]
#[inline]
pub const fn size(&self) -> u64 {
self.size
}
#[must_use]
#[inline]
pub const fn checksum(&self) -> Checksum {
self.checksum
}
#[must_use]
#[inline]
pub const fn compression_filter(&self) -> CompressionFilter {
self.compression_filter
}
#[cfg(feature = "extract")]
#[inline]
pub fn validate_checksum(&self, date: &[u8]) -> Result<(), ChecksumMismatchError> {
self.checksum().validate(date)
}
}