Struct blosc::Context[][src]

pub struct Context { /* fields omitted */ }

Holds basic settings for compress operations.

Methods

impl Context
[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.

Select the Context's compression level.

Higher values will give better compression at the expense of speed.

Select the Context's compression algorithm.

Returns an error if the compressor is not enabled in this build of C-Blosc.

Compress an array and return a newly allocated compressed buffer.

Build a default compression context.

Example

let ctx = Context::new()
    .blocksize(Some(262144))
    .compressor(Compressor::Zstd).unwrap()
    .clevel(Clevel::L9)
    .shuffle(ShuffleMode::Bit);

Select which Shuffle filter to apply before compression.

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]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Copy for Context
[src]

impl Debug for Context
[src]

Formats the value using the given formatter. Read more

Auto Trait Implementations

impl Send for Context

impl Sync for Context