1use 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}