use thiserror::Error;
#[derive(Debug, Error)]
pub enum ComputeError {
#[error("invalid input: {0}")]
InvalidInput(String),
#[error("CSV file not found: {0}")]
FileNotFound(String),
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("DataFusion error: {0}")]
DataFusion(String),
#[error("failed to serialize query result: {0}")]
Serialize(#[from] serde_json::Error),
}
impl ComputeError {
pub fn invalid_input(msg: impl Into<String>) -> Self {
Self::InvalidInput(msg.into())
}
pub fn datafusion(err: impl std::fmt::Display) -> Self {
Self::DataFusion(err.to_string())
}
}