ArchiveWriter

Struct ArchiveWriter 

Source
pub struct ArchiveWriter<W: Write> { /* private fields */ }
Available on crate feature compress only.
Expand description

Writes a 7z archive file.

Implementations§

Source§

impl ArchiveWriter<File>

Source

pub fn create(path: impl AsRef<Path>) -> Result<Self, Error>

Available on non-WebAssembly only.

Creates a file to write a 7z archive to.

Source§

impl<W: Write + Seek> ArchiveWriter<W>

Source

pub fn new(writer: W) -> Result<Self, Error>

Prepares writer to write a 7z archive to.

Source

pub fn auto_finish(self) -> AutoFinisher<Self>

Returns a wrapper around self that will finish the stream on drop.

Source

pub fn set_content_methods( &mut self, content_methods: Vec<EncoderConfiguration>, ) -> &mut Self

Sets the default compression methods to use for entry data. Default is LZMA2.

Source

pub fn set_encrypt_header(&mut self, enabled: bool)

Whether to enable the encryption of the -header. Default is true.

Source

pub fn push_archive_entry<R: Read>( &mut self, entry: ArchiveEntry, reader: Option<R>, ) -> Result<&ArchiveEntry, Error>

Non-solid compression - Adds an archive entry with data from reader.

§Example
use std::{fs::File, path::Path};

use sevenz_rust2::*;
let mut sz = ArchiveWriter::create("path/to/dest.7z").expect("create writer ok");
let src = Path::new("path/to/source.txt");
let name = "source.txt".to_string();
let entry = sz
    .push_archive_entry(
        ArchiveEntry::from_path(&src, name),
        Some(File::open(src).unwrap()),
    )
    .expect("ok");
let compressed_size = entry.compressed_size;
sz.finish().expect("done");
Source

pub fn push_archive_entries<R: Read>( &mut self, entries: Vec<ArchiveEntry>, reader: Vec<SourceReader<R>>, ) -> Result<&mut Self, Error>

Solid compression - packs entries into one pack.

§Panics
  • If entries’s length not equals to reader.reader_len()
Source

pub fn finish(self) -> Result<W>

Finishes the compression.

Source§

impl<W: Write + Seek> ArchiveWriter<W>

Source

pub fn push_source_path( &mut self, path: impl AsRef<Path>, filter: impl Fn(&Path) -> bool, ) -> Result<&mut Self, Error>

Available on crate feature util and non-WebAssembly only.

Adds a source path to the compression builder with a filter function using solid compression.

The filter function allows selective inclusion of files based on their paths. Files are compressed using solid compression for better compression ratios.

§Arguments
  • path - Path to add to the compression
  • filter - Function that returns true for paths that should be included
Source

pub fn push_source_path_non_solid( &mut self, path: impl AsRef<Path>, filter: impl Fn(&Path) -> bool, ) -> Result<&mut Self, Error>

Available on crate feature util and non-WebAssembly only.

Adds a source path to the compression builder with a filter function using non-solid compression.

Non-solid compression allows individual file extraction without decompressing the entire archive, but typically results in larger archive sizes compared to solid compression.

§Arguments
  • path - Path to add to the compression
  • filter - Function that returns true for paths that should be included

Auto Trait Implementations§

§

impl<W> Freeze for ArchiveWriter<W>
where W: Freeze,

§

impl<W> RefUnwindSafe for ArchiveWriter<W>
where W: RefUnwindSafe,

§

impl<W> Send for ArchiveWriter<W>
where W: Send,

§

impl<W> Sync for ArchiveWriter<W>
where W: Sync,

§

impl<W> Unpin for ArchiveWriter<W>
where W: Unpin,

§

impl<W> UnwindSafe for ArchiveWriter<W>
where W: UnwindSafe,

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, 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> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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>,

Source§

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.