Skip to main content

danube_core/metadata/
errors.rs

1use serde_json;
2use thiserror::Error;
3
4pub type Result<T> = std::result::Result<T, MetadataError>;
5
6#[derive(Error, Debug)]
7pub enum MetadataError {
8    #[error("Watch stream error: {0}")]
9    WatchError(String),
10
11    #[error("Storage backend error: {0}")]
12    StorageError(#[from] Box<dyn std::error::Error + Send + Sync>),
13
14    #[error("Transport error: {0}")]
15    TransportError(String),
16
17    #[error("Watch operation timed out")]
18    WatchTimeout,
19
20    #[error("Watch channel closed")]
21    WatchChannelClosed,
22
23    #[error("Invalid arguments: {0}")]
24    InvalidArguments(String),
25
26    #[error("Key already exists: {0}")]
27    KeyExists(String),
28
29    #[error("Watch cancelled")]
30    WatchCancelled,
31
32    #[error("Operation not supported by backend")]
33    UnsupportedOperation,
34
35    #[error("Serialization error: {0}")]
36    SerializationError(#[from] serde_json::Error),
37
38    #[error("Unknown error occurred: {0}")]
39    Unknown(String),
40}