1use thiserror::Error;
3
4use crate::{
5 domain::DomainError, eval::EvaluationError, relationship::StoreError,
6 revision::ConsistencyError, schema::SchemaError,
7};
8
9#[derive(Error, Debug, PartialEq)]
11pub enum ZanzibarError {
12 #[error("Namespace '{0}' not found")]
14 NamespaceNotFound(String),
15
16 #[error("Relation '{0}' not found in namespace '{1}'")]
18 RelationNotFound(String, String),
19
20 #[error("Parsing error: {0}")]
22 ParseError(String),
23
24 #[error("Storage error: {0}")]
26 StorageError(String),
27
28 #[error("Schema must be loaded before applying relationship batches")]
30 SchemaRequired,
31
32 #[error(transparent)]
34 Domain(#[from] DomainError),
35
36 #[error(transparent)]
38 Schema(#[from] SchemaError),
39
40 #[error(transparent)]
42 Store(#[from] StoreError),
43
44 #[error(transparent)]
46 Consistency(#[from] ConsistencyError),
47
48 #[error(transparent)]
50 Evaluation(#[from] EvaluationError),
51}