pub struct Filters { /* private fields */ }Expand description
A custom chain of filters to configure an encoding stream.
Implementations§
source§impl Filters
impl Filters
sourcepub fn lzma1(&mut self, opts: &LzmaOptions) -> &mut Filters
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.
sourcepub fn lzma1_properties(
&mut self,
properties: &[u8],
) -> Result<&mut Filters, Error>
pub fn lzma1_properties( &mut self, properties: &[u8], ) -> Result<&mut Filters, Error>
Add an LZMA1 filter with properties.
sourcepub fn lzma2(&mut self, opts: &LzmaOptions) -> &mut Filters
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.
sourcepub fn lzma2_properties(
&mut self,
properties: &[u8],
) -> Result<&mut Filters, Error>
pub fn lzma2_properties( &mut self, properties: &[u8], ) -> Result<&mut Filters, Error>
Add an LZMA2 filter with properties.
sourcepub fn delta(&mut self) -> &mut Filters
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);sourcepub fn delta_properties(
&mut self,
properties: &[u8],
) -> Result<&mut Filters, Error>
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();sourcepub fn x86(&mut self) -> &mut Filters
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);sourcepub fn x86_properties(
&mut self,
properties: &[u8],
) -> Result<&mut Filters, Error>
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();sourcepub fn powerpc(&mut self) -> &mut Filters
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);sourcepub fn powerpc_properties(
&mut self,
properties: &[u8],
) -> Result<&mut Filters, Error>
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();sourcepub fn ia64(&mut self) -> &mut Filters
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);sourcepub fn ia64_properties(
&mut self,
properties: &[u8],
) -> Result<&mut Filters, Error>
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();sourcepub fn arm(&mut self) -> &mut Filters
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);sourcepub fn arm_properties(
&mut self,
properties: &[u8],
) -> Result<&mut Filters, Error>
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();sourcepub fn arm64(&mut self) -> &mut Filters
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);sourcepub fn arm64_properties(
&mut self,
properties: &[u8],
) -> Result<&mut Filters, Error>
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();sourcepub fn riscv(&mut self) -> &mut Filters
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);sourcepub fn riscv_properties(
&mut self,
properties: &[u8],
) -> Result<&mut Filters, Error>
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();sourcepub fn arm_thumb(&mut self) -> &mut Filters
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);sourcepub fn arm_thumb_properties(
&mut self,
properties: &[u8],
) -> Result<&mut Filters, Error>
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();sourcepub fn sparc(&mut self) -> &mut Filters
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);sourcepub fn sparc_properties(
&mut self,
properties: &[u8],
) -> Result<&mut Filters, Error>
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();sourcepub fn mt_block_size(&self) -> u64
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);