[−][src]Struct rc_zip::StoredEntry
An entry as stored into an Archive. Contains additional metadata and offset information.
Whereas Entry is archive-independent, StoredEntry contains information that is tied to a specific archive.
When reading archives, one deals with a list of StoredEntry, whereas when writing one, one typically only specifies an Entry and provides the entry's contents: fields like the CRC32 hash, uncompressed size, and compressed size are derived automatically from the input.
Fields
entry: Entry
Archive-independent information
This contains the entry's name, timestamps, comment, compression method.
crc32: u32
CRC-32 hash as found in the central directory.
Note that this may be zero, and the actual CRC32 might be in the local header, or (more commonly) in the data descriptor instead.
header_offset: u64
Offset of the local file header in the zip file
[optional non-zip data]
[local file header 1] <------ header_offset points here
[encryption header 1]
[file data 1]
[data descriptor 1]
...
[central directory]
[optional zip64 end of central directory info]
[end of central directory record]
compressed_size: u64
Size in bytes, after compression
uncompressed_size: u64
Size in bytes, before compression
This will be zero for directories.
external_attrs: u32
External attributes (zip)
creator_version: Version
Version of zip supported by the tool that crated this archive.
reader_version: Version
Version of zip needed to extract this archive.
flags: u16
General purpose bit flag
In the zip format, the most noteworthy flag (bit 11) is for UTF-8 names. Other flags can indicate: encryption (unsupported), various compression settings (depending on the Method used).
uid: Option<u32>
Unix user ID
Only present if a Unix extra field or New Unix extra field was found.
gid: Option<u32>
Unix group ID
Only present if a Unix extra field or New Unix extra field was found.
mode: Mode
File mode
extra_fields: Vec<ExtraField>
Any extra fields recognized while parsing the file.
Most of these should be normalized and accessible as other fields, but they are also made available here raw.
is_zip64: bool
True if this entry was read from a zip64 archive
Methods
impl StoredEntry
[src]
pub fn name(&self) -> &str
[src]
Returns the entry's name
This should be a relative path, separated by /
. However, there are zip files in the wild
with all sorts of evil variants, so, be conservative in what you accept.
pub fn comment(&self) -> Option<&str>
[src]
The entry's comment, if any.
When reading a zip file, an empty comment results in None.
pub fn method(&self) -> Method
[src]
The compression method used for this entry
pub fn modified(&self) -> DateTime<Utc>
[src]
This entry's "last modified" timestamp - with caveats
Due to the history of the ZIP file format, this may be inaccurate. It may be offset by a few hours, if there is no extended timestamp information. It may have a resolution as low as two seconds, if only MSDOS timestamps are present. It may default to the Unix epoch, if something went really wrong.
If you're reading this after the year 2038, or after the year 2108, godspeed.
pub fn created(&self) -> Option<&DateTime<Utc>>
[src]
This entry's "created" timestamp, if available.
See StoredEntry::modified() for caveats.
pub fn accessed(&self) -> Option<&DateTime<Utc>>
[src]
This entry's "last accessed" timestamp, if available.
See StoredEntry::modified() for caveats.
ⓘImportant traits for EntryReader<'a, R>pub fn reader<'a, F, R>(&'a self, get_reader: F) -> EntryReader<'a, R> where
R: Read,
F: Fn(u64) -> R,
[src]
R: Read,
F: Fn(u64) -> R,
impl StoredEntry
[src]
pub fn contents<'a>(&'a self) -> EntryContents<'a>
[src]
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for StoredEntry
impl Send for StoredEntry
impl Sync for StoredEntry
impl Unpin for StoredEntry
impl UnwindSafe for StoredEntry
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,