1use thiserror::Error;
9
10#[derive(Debug, Error)]
12pub enum StorageError {
13 #[error("Database error: {0}")]
15 Database(String),
16
17 #[error("Serialization error: {0}")]
19 Serialization(String),
20
21 #[error("Deployment not found: {0}")]
23 NotFound(String),
24
25 #[error("Already exists: {0}")]
27 AlreadyExists(String),
28
29 #[error("Storage error: {0}")]
31 Other(String),
32
33 #[error("IO error: {0}")]
35 Io(#[from] std::io::Error),
36}
37
38impl From<sqlx::Error> for StorageError {
39 fn from(err: sqlx::Error) -> Self {
40 StorageError::Database(err.to_string())
41 }
42}
43
44impl From<serde_json::Error> for StorageError {
45 fn from(err: serde_json::Error) -> Self {
46 StorageError::Serialization(err.to_string())
47 }
48}