Module lz4::block

source · []
Expand description

This module provides access to the block mode functions of the lz4 C library. It somehow resembles the Python-lz4 api, but using Rust’s Option type, the function parameters have been a little simplified. As does python-lz4, this module supports prepending the compressed buffer with a u32 value representing the size of the original, uncompressed data.

Examples


use lz4::block::{compress,decompress};

let v = vec![0u8; 1024];

let comp_with_prefix = compress(&v, None, true).unwrap();
let comp_wo_prefix = compress(&v, None, false).unwrap();

assert_eq!(v, decompress(&comp_with_prefix, None).unwrap());
assert_eq!(v, decompress(&comp_wo_prefix, Some(1024)).unwrap());

Enums

Represents the compression mode do be used.

Functions

Compresses the full src buffer using the specified CompressionMode, where None and Some(Default) are treated equally. If prepend_size is set, the source length will be prepended to the output buffer.

Returns the size of the buffer that is guaranteed to hold the result of compressing uncompressed_size bytes of in data. Returns std::io::Error with ErrorKind::InvalidInput if input data is too long to be compressed by lz4.

Compresses the full src buffer using the specified CompressionMode, where None and Some(Default) are treated equally, writing compressed bytes to buffer.

Decompresses the src buffer. If uncompressed_size is None, the source length will be read from the start of the input buffer.