armature_admin/
error.rs

1//! Error types for admin module
2
3use thiserror::Error;
4
5/// Admin error types
6#[derive(Error, Debug)]
7pub enum AdminError {
8    /// Model not found
9    #[error("Model not found: {0}")]
10    ModelNotFound(String),
11
12    /// Record not found
13    #[error("Record not found: {model}/{id}")]
14    RecordNotFound { model: String, id: String },
15
16    /// Validation error
17    #[error("Validation error: {0}")]
18    Validation(String),
19
20    /// Permission denied
21    #[error("Permission denied: {0}")]
22    PermissionDenied(String),
23
24    /// Database error
25    #[error("Database error: {0}")]
26    Database(String),
27
28    /// Template error
29    #[error("Template error: {0}")]
30    Template(String),
31
32    /// Configuration error
33    #[error("Configuration error: {0}")]
34    Config(String),
35
36    /// Serialization error
37    #[error("Serialization error: {0}")]
38    Serialization(String),
39}
40
41impl From<serde_json::Error> for AdminError {
42    fn from(err: serde_json::Error) -> Self {
43        AdminError::Serialization(err.to_string())
44    }
45}
46
47/// Result type for admin operations
48pub type AdminResult<T> = Result<T, AdminError>;
49