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

source

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.

source

pub fn comment(&self) -> Option<&str>

The entry’s comment, if any.

When reading a zip file, an empty comment results in None.

source

pub fn method(&self) -> Method

The compression method used for this entry

source

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

pub fn created(&self) -> Option<&DateTime<Utc>>

This entry’s “created” timestamp, if available.

See StoredEntry::modified() for caveats.

source

pub fn accessed(&self) -> Option<&DateTime<Utc>>

This entry’s “last accessed” timestamp, if available.

See StoredEntry::modified() for caveats.

source§

impl StoredEntry

source

pub fn contents(&self) -> EntryContents

Trait Implementations§

source§

impl Clone for StoredEntry

source§

fn clone(&self) -> StoredEntry

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more