pub mod bitpack;
pub mod constants;
pub mod decoder;
pub mod encoder;
pub mod error;
pub mod sampler;
pub use constants::AlpFloat;
pub use decoder::{decompress_f32_into, decompress_f64_into, decompress_into};
pub use encoder::{compress_f32_into, compress_f64_into, compress_into};
pub use error::{Error, Result};
#[inline]
pub fn compress<F: AlpFloat>(data: &[F]) -> Vec<u8> {
let mut dst = Vec::with_capacity(data.len() * 2 + 16);
compress_into(data, &mut dst);
dst
}
#[inline]
pub fn decompress<F: AlpFloat>(src: &[u8]) -> Result<Vec<F>> {
let mut dst = Vec::new();
decompress_into(src, &mut dst)?;
Ok(dst)
}
#[inline]
pub fn compress_f64(data: &[f64]) -> Vec<u8> {
compress(data)
}
#[inline]
pub fn decompress_f64(src: &[u8]) -> Result<Vec<f64>> {
decompress(src)
}
#[inline]
pub fn compress_f32(data: &[f32]) -> Vec<u8> {
compress(data)
}
#[inline]
pub fn decompress_f32(src: &[u8]) -> Result<Vec<f32>> {
decompress(src)
}