#[cfg(feature = "compress")]
pub mod codec;
#[cfg(feature = "compress")]
pub mod parquet_shim;
#[cfg(feature = "compress")]
pub use codec::OxiArcCodec;
#[non_exhaustive]
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum CompressError {
Compress(String),
Decompress(String),
InvalidLevel(u32),
}
impl core::fmt::Display for CompressError {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
match self {
CompressError::Compress(msg) => write!(f, "compress error: {msg}"),
CompressError::Decompress(msg) => write!(f, "decompress error: {msg}"),
CompressError::InvalidLevel(level) => {
write!(f, "invalid compression level {level}: valid range is 0–9")
}
}
}
}
impl std::error::Error for CompressError {}
impl From<CompressError> for oxistore_core::StoreError {
fn from(e: CompressError) -> Self {
oxistore_core::StoreError::Other(e.to_string())
}
}
#[cfg(feature = "compress")]
impl From<oxiarc_core::error::OxiArcError> for CompressError {
fn from(e: oxiarc_core::error::OxiArcError) -> Self {
let msg = e.to_string();
CompressError::Decompress(msg)
}
}