ricecoder_local_models/
error.rs1use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum LocalModelError {
8 #[error("Model not found: {0}")]
9 ModelNotFound(String),
10
11 #[error("Model pull failed: {0}")]
12 PullFailed(String),
13
14 #[error("Model removal failed: {0}")]
15 RemovalFailed(String),
16
17 #[error("Model update failed: {0}")]
18 UpdateFailed(String),
19
20 #[error("Invalid model name: {0}")]
21 InvalidModelName(String),
22
23 #[error("Insufficient disk space")]
24 InsufficientDiskSpace,
25
26 #[error("Network error: {0}")]
27 NetworkError(String),
28
29 #[error("Configuration error: {0}")]
30 ConfigError(String),
31
32 #[error("IO error: {0}")]
33 IoError(#[from] std::io::Error),
34
35 #[error("Serialization error: {0}")]
36 SerializationError(#[from] serde_json::Error),
37
38 #[error("Provider error: {0}")]
39 ProviderError(String),
40
41 #[error("Timeout: {0}")]
42 Timeout(String),
43
44 #[error("Unknown error: {0}")]
45 Unknown(String),
46}
47
48impl From<reqwest::Error> for LocalModelError {
49 fn from(err: reqwest::Error) -> Self {
50 if err.is_timeout() {
51 LocalModelError::Timeout(err.to_string())
52 } else {
53 LocalModelError::NetworkError(err.to_string())
54 }
55 }
56}