use crate::storage::StorageError;
use crate::validation::ValidationError;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum ProllyError {
#[error(transparent)]
Tree(#[from] ProllyTreeError),
#[error(transparent)]
Storage(#[from] StorageError),
#[error(transparent)]
Validation(#[from] ValidationError),
#[cfg(feature = "git")]
#[error(transparent)]
Git(#[from] crate::git::types::GitKvError),
}
#[derive(Error, Debug)]
pub enum ProllyTreeError {
#[error("Arrow error: {0}")]
Arrow(#[from] arrow::error::ArrowError),
#[error("Parquet error: {0}")]
Parquet(#[from] parquet::errors::ParquetError),
#[error("Serde JSON error: {0}")]
SerdeJson(#[from] serde_json::Error),
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("Unsupported Value Type")]
UnsupportedValueType,
#[error("Unsupported Key Type")]
UnsupportedKeyType,
#[error("Unsupported Chunking Strategy")]
UnsupportedChunkingStrategy,
#[error("Unknown Codec")]
UnknownCodec,
#[error("Serde Error")]
Serde,
#[error("Schema not found")]
SchemaNotFound,
#[error("Invalid JSON value")]
InvalidJsonValue,
#[error("Invalid digest length")]
InvalidDigestLength,
}