tellaro-query-language 0.2.23

A flexible, human-friendly query language for searching and filtering structured data
Documentation
//! Error types for OpenSearch operations.

use thiserror::Error;

/// Result type for OpenSearch operations
pub type Result<T> = std::result::Result<T, OpenSearchError>;

/// Errors that can occur during OpenSearch operations
#[derive(Error, Debug)]
pub enum OpenSearchError {
    /// Connection error
    #[error("OpenSearch connection error: {0}")]
    ConnectionError(String),

    /// Query translation error
    #[error("Query translation error: {0}")]
    TranslationError(String),

    /// Field mapping error
    #[error("Field mapping error: {0}")]
    MappingError(String),

    /// Search execution error
    #[error("Search execution error: {0}")]
    SearchError(String),

    /// Configuration error
    #[error("Configuration error: {0}")]
    ConfigError(String),

    /// JSON serialization/deserialization error
    #[error("JSON error: {0}")]
    JsonError(#[from] serde_json::Error),

    /// OpenSearch client error
    #[error("OpenSearch client error: {0}")]
    ClientError(String),

    /// Post-processing error
    #[error("Post-processing error: {0}")]
    PostProcessingError(String),

    /// Scroll API error
    #[error("Scroll error: {0}")]
    ScrollError(String),

    /// TQL error (from main TQL crate)
    #[error("TQL error: {0}")]
    TqlError(#[from] crate::error::TqlError),
}

impl From<opensearch::Error> for OpenSearchError {
    fn from(err: opensearch::Error) -> Self {
        OpenSearchError::ClientError(err.to_string())
    }
}