tecton-compute 0.1.0

SQL/data processing engine powered by DataFusion and Arrow
Documentation
//! Compute-layer errors (thiserror).

use thiserror::Error;

/// Errors produced by SQL / DataFusion execution.
#[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())
    }
}