1use crate::model::NodeId;
2
3#[derive(Debug, thiserror::Error)]
4pub enum GraphError {
5 #[error("storage error: {0}")]
6 Storage(#[from] marsdb_storage::StorageError),
7 #[error("table error: {0}")]
8 Table(#[from] redb::TableError),
9 #[error("storage error: {0}")]
10 RedbStorage(#[from] redb::StorageError),
11 #[error("commit error: {0}")]
12 Commit(#[from] redb::CommitError),
13 #[error("encode error: {0}")]
14 Encode(#[from] postcard::Error),
15 #[error("node {0:?} has incident edges; use detach delete")]
16 NodeHasEdges(NodeId),
17 #[error("node {0:?} does not exist")]
18 NodeNotFound(NodeId),
19 #[error("corrupt database: {0}")]
20 CorruptData(String),
21 #[error("unique constraint violation: label {label:?} property {property:?} already has a node with this value")]
22 UniqueConstraintViolation { label: String, property: String },
23 #[error("no index on label {label:?} property {property:?}")]
24 IndexNotFound { label: String, property: String },
25}