#![deny(missing_docs)]
#![warn(clippy::unwrap_used, clippy::panic)]
pub mod auto_select;
pub mod benchmark;
pub mod codecs;
pub mod error;
pub mod floating_point;
pub mod metadata;
pub mod parallel;
pub use error::{CompressionError, Result};
pub mod prelude {
pub use crate::{
auto_select::{AutoSelector, CompressionGoal, DataCharacteristics, DataType},
codecs::{
BloscCodec, BrotliCodec, CodecType, DeflateCodec, DeltaCodec, DictionaryCodec,
Lz4Codec, RleCodec, SnappyCodec, ZstdCodec,
},
error::{CompressionError, Result},
metadata::CompressionMetadata,
parallel::ParallelCompressor,
};
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_lz4_roundtrip() {
use codecs::Lz4Codec;
let codec = Lz4Codec::new();
let data = b"Test data".repeat(100);
let compressed = codec.compress(&data).expect("Compression failed");
let decompressed = codec
.decompress(&compressed, Some(data.len()))
.expect("Decompression failed");
assert_eq!(decompressed, data);
}
#[test]
fn test_zstd_roundtrip() {
use codecs::ZstdCodec;
let codec = ZstdCodec::new();
let data = b"Test data".repeat(100);
let compressed = codec.compress(&data).expect("Compression failed");
let decompressed = codec
.decompress(&compressed, Some(data.len() * 2))
.expect("Decompression failed");
assert_eq!(decompressed, data);
}
}