use thiserror::Error;

#[derive(Debug, Error)]
pub enum ProjectionError {
    #[error("Arrow projection is not supported for {0}")]
    Unsupported(String),

    #[error("Arrow projection failed: {0}")]
    Arrow(String),
}

pub type ProjectionResult<T> = Result<T, ProjectionError>;

#[derive(Debug, Error)]
pub enum IngestionError {
    #[error("Arrow ingestion is not supported: {0}")]
    Unsupported(String),

    #[error("Arrow ingestion failed: {0}")]
    Arrow(#[from] arrow_schema::ArrowError),
}

pub type IngestionResult<T> = Result<T, IngestionError>;
