Struct rc_zip::StoredEntry
source · pub struct StoredEntry {Show 14 fields
pub entry: Entry,
pub crc32: u32,
pub header_offset: u64,
pub compressed_size: u64,
pub uncompressed_size: u64,
pub external_attrs: u32,
pub creator_version: Version,
pub reader_version: Version,
pub flags: u16,
pub uid: Option<u32>,
pub gid: Option<u32>,
pub mode: Mode,
pub extra_fields: Vec<ExtraField>,
pub is_zip64: bool,
}
Expand description
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
Implementations§
source§impl StoredEntry
impl StoredEntry
sourcepub fn name(&self) -> &str
pub fn name(&self) -> &str
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.
sourcepub fn comment(&self) -> Option<&str>
pub fn comment(&self) -> Option<&str>
The entry’s comment, if any.
When reading a zip file, an empty comment results in None.
sourcepub fn modified(&self) -> DateTime<Utc>
pub fn modified(&self) -> DateTime<Utc>
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.
source§impl StoredEntry
impl StoredEntry
pub fn contents(&self) -> EntryContents
Trait Implementations§
source§impl Clone for StoredEntry
impl Clone for StoredEntry
source§fn clone(&self) -> StoredEntry
fn clone(&self) -> StoredEntry
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more