pub mod compress;
pub mod decompress_api;
pub mod decompress_core;
pub mod stream;
pub mod types;
pub use compress::{
compress_bound, compress_default, compress_dest_size, compress_fast, Lz4Error,
LZ4_ACCELERATION_DEFAULT, LZ4_ACCELERATION_MAX, LZ4_MAX_INPUT_SIZE,
};
pub use decompress_api::{
decoder_ring_buffer_size, decompress_safe, decompress_safe_partial, decompress_safe_using_dict,
Lz4StreamDecode,
};
pub use stream::Lz4Stream;
pub use types::{StreamStateInternal, LZ4_DISTANCE_MAX};
pub fn compress_block_to_vec(input: &[u8]) -> Vec<u8> {
let cap = compress::compress_bound(input.len() as i32).max(0) as usize;
let mut dst = vec![0u8; cap];
match compress::compress_default(input, &mut dst) {
Ok(n) => {
dst.truncate(n);
dst
}
Err(_) => Vec::new(),
}
}
pub fn decompress_block_to_vec(src: &[u8], original_size: usize) -> Vec<u8> {
let mut dst = vec![0u8; original_size];
match decompress_api::decompress_safe(src, &mut dst) {
Ok(n) => {
dst.truncate(n);
dst
}
Err(_) => Vec::new(),
}
}