[go: up one dir, main page]

Struct liblzma::stream::Filters

source ·
pub struct Filters { /* private fields */ }
Expand description

A custom chain of filters to configure an encoding stream.

Implementations§

source§

impl Filters

source

pub fn new() -> Filters

Creates a new filter chain with no filters.

source

pub fn lzma1(&mut self, opts: &LzmaOptions) -> &mut Filters

Add an LZMA1 filter.

LZMA1 is the very same thing as what was called just LZMA in LZMA Utils, 7-Zip, and LZMA SDK. It’s called LZMA1 here to prevent developers from accidentally using LZMA when they actually want LZMA2.

LZMA1 shouldn’t be used for new applications unless you really know what you are doing. LZMA2 is almost always a better choice.

source

pub fn lzma1_properties( &mut self, properties: &[u8], ) -> Result<&mut Filters, Error>

Add an LZMA1 filter with properties.

source

pub fn lzma2(&mut self, opts: &LzmaOptions) -> &mut Filters

Add an LZMA2 filter.

Usually you want this instead of LZMA1. Compared to LZMA1, LZMA2 adds support for SyncFlush, uncompressed chunks (smaller expansion when trying to compress uncompressible data), possibility to change literal_context_bits/literal_position_bits/position_bits in the middle of encoding, and some other internal improvements.

source

pub fn lzma2_properties( &mut self, properties: &[u8], ) -> Result<&mut Filters, Error>

Add an LZMA2 filter with properties.

source

pub fn delta(&mut self) -> &mut Filters

Add a DELTA filter.

§Examples
use liblzma::stream::{Filters, LzmaOptions};

let dict_size = 0x40000;
let mut opts = LzmaOptions::new_preset(6).unwrap();
opts.dict_size(dict_size);
let mut filters = Filters::new();
filters.delta();
filters.lzma2(&opts);
source

pub fn delta_properties( &mut self, properties: &[u8], ) -> Result<&mut Filters, Error>

Add a DELTA filter with properties.

§Examples
use liblzma::stream::{Filters, LzmaOptions};

let mut filters = Filters::new();
filters.delta_properties(&[0x00]).unwrap();
source

pub fn x86(&mut self) -> &mut Filters

Add a filter for x86 binaries.

§Examples
use liblzma::stream::{Filters, LzmaOptions};

let dict_size = 0x40000;
let mut opts = LzmaOptions::new_preset(6).unwrap();
opts.dict_size(dict_size);
let mut filters = Filters::new();
filters.x86();
filters.lzma2(&opts);
source

pub fn x86_properties( &mut self, properties: &[u8], ) -> Result<&mut Filters, Error>

Add a filter for x86 binaries with properties.

§Examples
use liblzma::stream::{Filters, LzmaOptions};

let mut filters = Filters::new();
filters.x86_properties(&[0x00, 0x00, 0x00, 0x00]).unwrap();
source

pub fn powerpc(&mut self) -> &mut Filters

Add a filter for PowerPC binaries.

§Examples
use liblzma::stream::{Filters, LzmaOptions};

let dict_size = 0x40000;
let mut opts = LzmaOptions::new_preset(6).unwrap();
opts.dict_size(dict_size);
let mut filters = Filters::new();
filters.powerpc();
filters.lzma2(&opts);
source

pub fn powerpc_properties( &mut self, properties: &[u8], ) -> Result<&mut Filters, Error>

Add a filter for PowerPC binaries with properties.

§Examples
use liblzma::stream::{Filters, LzmaOptions};

let mut filters = Filters::new();
filters.powerpc_properties(&[0x00, 0x00, 0x00, 0x00]).unwrap();
source

pub fn ia64(&mut self) -> &mut Filters

Add a filter for IA-64 (itanium) binaries.

§Examples
use liblzma::stream::{Filters, LzmaOptions};

let dict_size = 0x40000;
let mut opts = LzmaOptions::new_preset(6).unwrap();
opts.dict_size(dict_size);
let mut filters = Filters::new();
filters.ia64();
filters.lzma2(&opts);
source

pub fn ia64_properties( &mut self, properties: &[u8], ) -> Result<&mut Filters, Error>

Add a filter for IA-64 (itanium) binaries with properties.

§Examples
use liblzma::stream::{Filters, LzmaOptions};

let mut filters = Filters::new();
filters.ia64_properties(&[0x00, 0x00, 0x00, 0x00]).unwrap();
source

pub fn arm(&mut self) -> &mut Filters

Add a filter for ARM binaries.

§Examples
use liblzma::stream::{Filters, LzmaOptions};

let dict_size = 0x40000;
let mut opts = LzmaOptions::new_preset(6).unwrap();
opts.dict_size(dict_size);
let mut filters = Filters::new();
filters.arm();
filters.lzma2(&opts);
source

pub fn arm_properties( &mut self, properties: &[u8], ) -> Result<&mut Filters, Error>

Add a filter for ARM binaries with properties.

§Examples
use liblzma::stream::{Filters, LzmaOptions};

let mut filters = Filters::new();
filters.arm_properties(&[0x00, 0x00, 0x00, 0x00]).unwrap();
source

pub fn arm64(&mut self) -> &mut Filters

Add a filter for ARM64 binaries.

§Examples
use liblzma::stream::{Filters, LzmaOptions};

let dict_size = 0x40000;
let mut opts = LzmaOptions::new_preset(6).unwrap();
opts.dict_size(dict_size);
let mut filters = Filters::new();
filters.arm64();
filters.lzma2(&opts);
source

pub fn arm64_properties( &mut self, properties: &[u8], ) -> Result<&mut Filters, Error>

Add a filter for ARM64 binaries with properties.

§Examples
use liblzma::stream::{Filters, LzmaOptions};

let mut filters = Filters::new();
filters.arm64_properties(&[0x00, 0x00, 0x00, 0x00]).unwrap();
source

pub fn riscv(&mut self) -> &mut Filters

Add a filter for RISCV binaries.

§Examples
use liblzma::stream::{Filters, LzmaOptions};

let dict_size = 0x40000;
let mut opts = LzmaOptions::new_preset(6).unwrap();
opts.dict_size(dict_size);
let mut filters = Filters::new();
filters.riscv();
filters.lzma2(&opts);
source

pub fn riscv_properties( &mut self, properties: &[u8], ) -> Result<&mut Filters, Error>

Add a filter for RISCV binaries with properties.

§Examples
use liblzma::stream::{Filters, LzmaOptions};

let mut filters = Filters::new();
filters.riscv_properties(&[0x00, 0x00, 0x00, 0x00]).unwrap();
source

pub fn arm_thumb(&mut self) -> &mut Filters

Add a filter for ARM-Thumb binaries.

§Examples
use liblzma::stream::{Filters, LzmaOptions};

let dict_size = 0x40000;
let mut opts = LzmaOptions::new_preset(6).unwrap();
opts.dict_size(dict_size);
let mut filters = Filters::new();
filters.arm_thumb();
filters.lzma2(&opts);
source

pub fn arm_thumb_properties( &mut self, properties: &[u8], ) -> Result<&mut Filters, Error>

Add a filter for ARM-Thumb binaries with properties.

§Examples
use liblzma::stream::{Filters, LzmaOptions};

let mut filters = Filters::new();
filters.arm_thumb_properties(&[0x00, 0x00, 0x00, 0x00]).unwrap();
source

pub fn sparc(&mut self) -> &mut Filters

Add a filter for SPARC binaries.

§Examples
use liblzma::stream::{Filters, LzmaOptions};

let dict_size = 0x40000;
let mut opts = LzmaOptions::new_preset(6).unwrap();
opts.dict_size(dict_size);
let mut filters = Filters::new();
filters.sparc();
filters.lzma2(&opts);
source

pub fn sparc_properties( &mut self, properties: &[u8], ) -> Result<&mut Filters, Error>

Add a filter for SPARC binaries with properties.

§Examples
use liblzma::stream::{Filters, LzmaOptions};

let mut filters = Filters::new();
filters.sparc_properties(&[0x00, 0x00, 0x00, 0x00]).unwrap();
source

pub fn mt_block_size(&self) -> u64

recommend a Block size for multithreaded encoding

§Examples
use liblzma::stream::{Filters, LzmaOptions};

let dict_size = 0x40000;
let mut opts = LzmaOptions::new_preset(6).unwrap();
opts.dict_size(dict_size);
let mut filters = Filters::new();
filters.lzma2(&opts);
assert_eq!(filters.mt_block_size(), 1 << 20);

Auto Trait Implementations§

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