pub struct SyncStoredEntry<'a, F> { /* private fields */ }
Expand description

A zip entry, read synchronously from a file or other I/O resource.

Implementations§

source§

impl<'a, F> SyncStoredEntry<'a, F>
where F: HasCursor,

source

pub fn reader(&self) -> impl Read + 'a

Returns a reader for the entry.

source

pub fn bytes(&self) -> Result<Vec<u8>>

Reads the entire entry into a vector.

Methods from Deref<Target = StoredEntry>§

source

pub fn name(&self) -> &str

Returns the entry’s name. See also sanitized_name(), which returns a sanitized version of the 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 sanitized_name(&self) -> Option<&str>

Returns a sanitized version of the entry’s name, if it seems safe. In particular, if this method feels like the entry name is trying to do a zip slip (cf. https://snyk.io/research/zip-slip-vulnerability), it’ll return None.

Other than that, it will strip any leading slashes on non-Windows OSes.

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

pub fn contents(&self) -> EntryContents

Determine EntryContents of this entry based on its mode.

Trait Implementations§

source§

impl<F> Deref for SyncStoredEntry<'_, F>

§

type Target = StoredEntry

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.

Auto Trait Implementations§

§

impl<'a, F> RefUnwindSafe for SyncStoredEntry<'a, F>
where F: RefUnwindSafe,

§

impl<'a, F> Send for SyncStoredEntry<'a, F>
where F: Sync,

§

impl<'a, F> Sync for SyncStoredEntry<'a, F>
where F: Sync,

§

impl<'a, F> Unpin for SyncStoredEntry<'a, F>

§

impl<'a, F> UnwindSafe for SyncStoredEntry<'a, F>
where F: RefUnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

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 T
where U: From<T>,

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, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
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