Skip to main content

donadb_rel/
error.rs

1// error.rs — unified error type for donadb-rel.
2
3use thiserror::Error;
4
5#[derive(Debug, Error)]
6pub enum RelError {
7    #[error("DonaDB error: {0}")]
8    Db(#[from] donadb::error::DbError),
9
10    #[error("Schema error: {0}")]
11    Schema(String),
12
13    #[error("Type mismatch: field '{field}' expected {expected}, got {got}")]
14    TypeMismatch {
15        field: String,
16        expected: String,
17        got: String,
18    },
19
20    #[error("Missing required field: '{0}'")]
21    MissingField(String),
22
23    #[error("Unknown field: '{0}'")]
24    UnknownField(String),
25
26    #[error("Unknown schema: '{0}'")]
27    UnknownSchema(String),
28
29    #[error("Unknown index: '{0}'")]
30    UnknownIndex(String),
31
32    #[error("Codec error: {0}")]
33    Codec(String),
34
35    #[error("Foreign key not found: schema='{schema}' key='{key}'")]
36    ForeignKeyNotFound { schema: String, key: String },
37
38    #[error("Index domain overflow: {0}")]
39    IndexOverflow(String),
40}