use thiserror::Error;
#[derive(Debug, Clone, Error)]
pub enum CypherError {
#[error("Cypher lexer error at position {position}: {message}")]
LexError {
position: usize,
message: String,
},
#[error("Cypher parse error at position {position}: {message}")]
ParseError {
position: usize,
message: String,
},
#[error("Unsupported Cypher feature: {0}")]
UnsupportedFeature(String),
#[error("Invalid temporal clause: {0}")]
InvalidTemporalClause(String),
#[error("Invalid timestamp: {0}")]
InvalidTimestamp(String),
#[error("Parameter error: {0}")]
ParameterError(String),
#[error("Cypher semantic error: {0}")]
SemanticError(String),
}