use thiserror::Error;
#[derive(Debug, Error)]
pub enum RelError {
#[error("DonaDB error: {0}")]
Db(#[from] donadb::error::DbError),
#[error("Schema error: {0}")]
Schema(String),
#[error("Type mismatch: field '{field}' expected {expected}, got {got}")]
TypeMismatch {
field: String,
expected: String,
got: String,
},
#[error("Missing required field: '{0}'")]
MissingField(String),
#[error("Unknown field: '{0}'")]
UnknownField(String),
#[error("Unknown schema: '{0}'")]
UnknownSchema(String),
#[error("Unknown index: '{0}'")]
UnknownIndex(String),
#[error("Codec error: {0}")]
Codec(String),
#[error("Foreign key not found: schema='{schema}' key='{key}'")]
ForeignKeyNotFound { schema: String, key: String },
#[error("Index domain overflow: {0}")]
IndexOverflow(String),
}