#[cfg(feature = "lz4")]
pub(crate) mod lz4;
#[cfg(feature = "zstd")]
pub(crate) mod zstd;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[non_exhaustive]
pub enum Compression {
None,
#[cfg(feature = "lz4")]
Lz4,
#[cfg(feature = "lz4")]
#[deprecated(note = "use `Compression::Lz4` instead")]
Lz4Hc(i32),
#[cfg(feature = "zstd")]
Zstd(i32),
}
impl Default for Compression {
#[cfg(all(not(feature = "test-util"), feature = "lz4"))]
#[inline]
fn default() -> Self {
Compression::Lz4
}
#[cfg(all(not(feature = "test-util"), not(feature = "lz4"), feature = "zstd"))]
#[inline]
fn default() -> Self {
Compression::zstd()
}
#[cfg(any(feature = "test-util", not(any(feature = "lz4", feature = "zstd"))))]
#[inline]
fn default() -> Self {
Compression::None
}
}
impl Compression {
#[cfg(feature = "zstd")]
pub fn zstd() -> Self {
Compression::Zstd(::zstd::DEFAULT_COMPRESSION_LEVEL)
}
pub(crate) fn is_enabled(&self) -> bool {
*self != Compression::None
}
}