llm_registry_core/
error.rs1use thiserror::Error;
4
5pub type Result<T> = std::result::Result<T, RegistryError>;
7
8#[derive(Error, Debug)]
10pub enum RegistryError {
11 #[error("Asset not found: {0}")]
13 AssetNotFound(String),
14
15 #[error("Duplicate asset: {name} version {version}")]
17 DuplicateAsset { name: String, version: String },
18
19 #[error("Checksum mismatch: expected {expected}, got {actual}")]
21 ChecksumMismatch { expected: String, actual: String },
22
23 #[error("Invalid dependency: {0}")]
25 InvalidDependency(String),
26
27 #[error("Circular dependency detected: {0}")]
29 CircularDependency(String),
30
31 #[error("Policy validation failed: {0}")]
33 PolicyValidationFailed(String),
34
35 #[error("Invalid version: {0}")]
37 InvalidVersion(String),
38
39 #[error("Invalid asset type: {0}")]
41 InvalidAssetType(String),
42
43 #[error("Validation error: {0}")]
45 ValidationError(String),
46
47 #[error("Database error: {0}")]
49 DatabaseError(String),
50
51 #[error("Storage error: {0}")]
53 StorageError(String),
54
55 #[error("Serialization error: {0}")]
57 SerializationError(String),
58
59 #[error("Authentication failed: {0}")]
61 AuthenticationError(String),
62
63 #[error("Authorization failed: {0}")]
65 AuthorizationError(String),
66
67 #[error("Configuration error: {0}")]
69 ConfigurationError(String),
70
71 #[error("IO error: {0}")]
73 IoError(String),
74
75 #[error("Internal error: {0}")]
77 InternalError(String),
78}
79
80impl From<serde_json::Error> for RegistryError {
81 fn from(err: serde_json::Error) -> Self {
82 RegistryError::SerializationError(err.to_string())
83 }
84}
85
86impl From<semver::Error> for RegistryError {
87 fn from(err: semver::Error) -> Self {
88 RegistryError::InvalidVersion(err.to_string())
89 }
90}