[−][src]Struct blosc::Context
Holds basic settings for compress operations.
Implementations
impl Context[src]
pub fn blocksize(self, blocksize: Option<usize>) -> Self[src]
Select the Context's blocksize.
Blocksize is the amount of data the compressor will work on at one time.
Limiting it can improve the CPU's cache hit rate. Increasing it can
improve compression. Generally this should be None, in which case
Blosc will choose a sensible value.
pub fn clevel(self, clevel: Clevel) -> Self[src]
Select the Context's compression level.
Higher values will give better compression at the expense of speed.
pub fn compressor(self, compressor: Compressor) -> Result<Self, ()>[src]
Select the Context's compression algorithm.
Returns an error if the compressor is not enabled in this build of
C-Blosc.
pub fn compress<T>(&self, src: &[T]) -> Buffer<T>[src]
Compress an array and return a newly allocated compressed buffer.
pub fn new() -> Self[src]
Build a default compression context.
Example
let ctx = Context::new() .blocksize(Some(262144)) .compressor(Compressor::Zstd).unwrap() .clevel(Clevel::L9) .shuffle(ShuffleMode::Bit);
pub fn shuffle(self, shuffle_mode: ShuffleMode) -> Self[src]
Select which Shuffle filter to apply before compression.
pub fn typesize(self, typesize: Option<usize>) -> Self[src]
Manually set the size in bytes to assume for each uncompressed array element.
The typesize is used for Blosc's shuffle operation. When compressing
arrays, the typesize should be the size of each array element. If
None or unspecified, it will be autodetected. However, manually
setting typesize can be useful when compressing preserialized buffers
or single structures that contain arrays.
Examples
Set the typesize when compressing an array-containing struct
#[derive(Default)] struct Foo { x: usize, y: [u32; 32] } let foo = [Foo::default()]; let ctx = Context::new().typesize(Some(mem::size_of_val(&foo[0].y[0]))); ctx.compress(&foo[..]);
Set the typesize when compressing preserialized data.
let raw: Vec<i16> = vec![0, 1, 2, 3, 4, 5]; let serialized = bincode::serialize(&raw).unwrap(); let ctx = Context::new().typesize(Some(mem::size_of::<i16>())); ctx.compress(&serialized[..]);
Trait Implementations
impl Clone for Context[src]
impl Copy for Context[src]
impl Debug for Context[src]
impl Default for Context[src]
Auto Trait Implementations
impl RefUnwindSafe for Context
impl Send for Context
impl Sync for Context
impl Unpin for Context
impl UnwindSafe for Context
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T[src]
fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,