#[non_exhaustive]pub struct FileOptions<'k, T: FileOptionExtension> { /* private fields */ }Expand description
Metadata for a file to be written
Implementations§
Source§impl<T: FileOptionExtension> FileOptions<'_, T>
impl<T: FileOptionExtension> FileOptions<'_, T>
Sourcepub const fn has_encryption(&self) -> bool
pub const fn has_encryption(&self) -> bool
Indicates whether this file will be encrypted (whether with AES or ZipCrypto).
Sourcepub const fn compression_method(self, method: CompressionMethod) -> Self
pub const fn compression_method(self, method: CompressionMethod) -> Self
Set the compression method for the new file
The default is CompressionMethod::Deflated if it is enabled. If not,
CompressionMethod::Bzip2 is the default if it is enabled. If neither bzip2 nor deflate
is enabled, CompressionMethod::Stored becomes the default and files are written uncompressed.
Sourcepub const fn system(self, system: System) -> Self
pub const fn system(self, system: System) -> Self
Set the system field for the new file
If not set, the zip crate will use the current system
Sourcepub const fn compression_level(self, level: Option<i64>) -> Self
pub const fn compression_level(self, level: Option<i64>) -> Self
Set the compression level for the new file
None value specifies default compression level.
Range of values depends on compression method:
Deflated: 10 - 264 for Zopfli, 0 - 9 for other encoders. Default is 24 if Zopfli is the only encoder, or 6 otherwise.Bzip2: 0 - 9. Default is 6Zstd: -7 - 22, with zero being mapped to default level. Default is 3- others: only
Noneis allowed
Sourcepub const fn last_modified_time(self, mod_time: DateTime) -> Self
pub const fn last_modified_time(self, mod_time: DateTime) -> Self
Set the last modified time
The default is the current timestamp if the ‘time’ feature is enabled, and 1980-01-01 otherwise
Sourcepub const fn unix_permissions(self, mode: u32) -> Self
pub const fn unix_permissions(self, mode: u32) -> Self
Set the permissions for the new file.
The format is represented with unix-style permissions.
The default is 0o644, which represents rw-r--r-- for files,
and 0o755, which represents rwxr-xr-x for directories.
This method only preserves the file permissions bits (via a & 0o777) and discards
higher file mode bits. So it cannot be used to denote an entry as a directory,
symlink, or other special file type.
Sourcepub const fn large_file(self, large: bool) -> Self
pub const fn large_file(self, large: bool) -> Self
Set whether the new file’s compressed and uncompressed size is less than 4 GiB.
If set to false and the file exceeds the limit, an I/O error is thrown and the file is
aborted. If set to true, readers will require ZIP64 support and if the file does not
exceed the limit, 20 B are wasted. The default is false.
Sourcepub fn with_aes_encryption_and_salt(
self,
password: &[u8],
salt: AesSalt,
) -> FileOptions<'_, T>
Available on crate feature aes-crypto only.
pub fn with_aes_encryption_and_salt( self, password: &[u8], salt: AesSalt, ) -> FileOptions<'_, T>
aes-crypto only.Set the AES encryption parameters.
The salt must be at least 8 bytes long for AES-128, and at least 16 bytes long for AES-256.
This method is not recommended, since having a fixed salt is not secure.
Consider using with_aes_encryption instead, which uses a random salt and is more secure.
Sourcepub fn with_aes_encryption(
self,
mode: AesMode,
password: &str,
) -> FileOptions<'_, T>
Available on crate feature aes-crypto only.
pub fn with_aes_encryption( self, mode: AesMode, password: &str, ) -> FileOptions<'_, T>
aes-crypto only.Set the AES encryption parameters.
Sourcepub fn with_aes_encryption_bytes(
self,
mode: AesMode,
password: &[u8],
) -> FileOptions<'_, T>
Available on crate feature aes-crypto only.
pub fn with_aes_encryption_bytes( self, mode: AesMode, password: &[u8], ) -> FileOptions<'_, T>
aes-crypto only.Set the AES encryption parameters.
Sourcepub const fn with_zopfli_buffer(self, size: Option<usize>) -> Self
Available on crate feature deflate-zopfli only.
pub const fn with_zopfli_buffer(self, size: Option<usize>) -> Self
deflate-zopfli only.Sets the size of the buffer used to hold the next block that Zopfli will compress. The
larger the buffer, the more effective the compression, but the more memory is required.
A value of None indicates no buffer, which is recommended only when all non-empty writes
are larger than about 32 KiB.
Sourcepub const fn get_compression_level(&self) -> Option<i64>
pub const fn get_compression_level(&self) -> Option<i64>
Returns the compression level currently set.
Sourcepub const fn with_alignment(self, alignment: u16) -> Self
pub const fn with_alignment(self, alignment: u16) -> Self
Sets the alignment to the given number of bytes.
Source§impl FileOptions<'_, ExtendedFileOptions>
impl FileOptions<'_, ExtendedFileOptions>
Sourcepub fn with_file_comment<S: Into<Box<str>>>(self, comment: S) -> Self
pub fn with_file_comment<S: Into<Box<str>>>(self, comment: S) -> Self
Set the file comment.
Sourcepub fn add_extra_data<D: AsRef<[u8]>>(
&mut self,
header_id: u16,
data: D,
central_only: bool,
) -> ZipResult<()>
pub fn add_extra_data<D: AsRef<[u8]>>( &mut self, header_id: u16, data: D, central_only: bool, ) -> ZipResult<()>
Adds an extra data field.
Sourcepub fn clear_extra_data(self) -> Self
pub fn clear_extra_data(self) -> Self
Removes the extra data fields.
Source§impl FileOptions<'static, ()>
impl FileOptions<'static, ()>
Sourcepub const DEFAULT: Self
pub const DEFAULT: Self
Constructs a const FileOptions object.
Note: This value is different than the return value of FileOptions::default():
- The
last_modified_timeisDateTime::DEFAULT. This corresponds to 1980-01-01 00:00:00
Source§impl<'k> FileOptions<'k, ()>
impl<'k> FileOptions<'k, ()>
Sourcepub fn into_full_options(self) -> FullFileOptions<'k>
pub fn into_full_options(self) -> FullFileOptions<'k>
Convert to FullFileOptions.
Trait Implementations§
Source§impl<'a> Arbitrary<'a> for FileOptions<'a, ExtendedFileOptions>
Available on crate feature _arbitrary only.
impl<'a> Arbitrary<'a> for FileOptions<'a, ExtendedFileOptions>
_arbitrary only.Source§fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self>
Self from the given unstructured data. Read moreSource§fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>
fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>
Self from the entirety of the given
unstructured data. Read moreSource§fn size_hint(depth: usize) -> (usize, Option<usize>)
fn size_hint(depth: usize) -> (usize, Option<usize>)
Unstructured this type
needs to construct itself. Read moreSource§fn try_size_hint(
depth: usize,
) -> Result<(usize, Option<usize>), MaxRecursionReached>
fn try_size_hint( depth: usize, ) -> Result<(usize, Option<usize>), MaxRecursionReached>
Unstructured this type
needs to construct itself. Read moreSource§impl<'k, T: Clone + FileOptionExtension> Clone for FileOptions<'k, T>
impl<'k, T: Clone + FileOptionExtension> Clone for FileOptions<'k, T>
Source§fn clone(&self) -> FileOptions<'k, T>
fn clone(&self) -> FileOptions<'k, T>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<'k, T: Debug + FileOptionExtension> Debug for FileOptions<'k, T>
impl<'k, T: Debug + FileOptionExtension> Debug for FileOptions<'k, T>
Source§impl<T: FileOptionExtension> Default for FileOptions<'_, T>
impl<T: FileOptionExtension> Default for FileOptions<'_, T>
Source§impl<T: FileOptionExtension> FileOptionsExt for FileOptions<'_, T>
impl<T: FileOptionExtension> FileOptionsExt for FileOptions<'_, T>
Source§fn with_deprecated_encryption(
self,
password: &[u8],
) -> ZipResult<FileOptions<'static, T>>
fn with_deprecated_encryption( self, password: &[u8], ) -> ZipResult<FileOptions<'static, T>>
ZipCrypto algorithm. Read moreSource§impl<'k, T: PartialEq + FileOptionExtension> PartialEq for FileOptions<'k, T>
impl<'k, T: PartialEq + FileOptionExtension> PartialEq for FileOptions<'k, T>
impl<'k, T: Copy + FileOptionExtension> Copy for FileOptions<'k, T>
impl<'k, T: Eq + FileOptionExtension> Eq for FileOptions<'k, T>
impl<'k, T: FileOptionExtension> StructuralPartialEq for FileOptions<'k, T>
Auto Trait Implementations§
impl<'k, T> Freeze for FileOptions<'k, T>where
T: Freeze,
impl<'k, T> RefUnwindSafe for FileOptions<'k, T>where
T: RefUnwindSafe,
impl<'k, T> Send for FileOptions<'k, T>where
T: Send,
impl<'k, T> Sync for FileOptions<'k, T>where
T: Sync,
impl<'k, T> Unpin for FileOptions<'k, T>where
T: Unpin,
impl<'k, T> UnsafeUnpin for FileOptions<'k, T>where
T: UnsafeUnpin,
impl<'k, T> UnwindSafe for FileOptions<'k, T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.