use crate::{ArchivePath, CentralDirectoryHeader, DosDateTime};
#[derive(Debug)]
pub struct DirEntry<'a> {
pub(crate) header: &'a CentralDirectoryHeader,
pub(crate) path: ArchivePath<'a>,
pub(crate) id: u32,
}
impl<'a> DirEntry<'a> {
#[must_use]
pub fn path(&self) -> &ArchivePath<'a> {
&self.path
}
#[must_use]
pub fn mode(&self) -> u32 {
self.header.external_attrs.get() >> 16
}
#[must_use]
pub fn mtime(&self) -> DosDateTime {
DosDateTime::from_date_time_parts(self.header.mod_date.get(), self.header.mod_time.get())
}
#[must_use]
pub fn header(&self) -> &'a CentralDirectoryHeader {
self.header
}
#[must_use]
pub fn id(&self) -> u32 {
self.id
}
}