brainwires_training/
error.rs1use thiserror::Error;
2
3#[derive(Error, Debug)]
5pub enum TrainingError {
6 #[error("Dataset error: {0}")]
8 Dataset(#[from] brainwires_datasets::DatasetError),
9
10 #[error("API error: {message} (status: {status_code})")]
12 Api {
13 message: String,
15 status_code: u16,
17 },
18
19 #[error("Provider error: {0}")]
21 Provider(String),
22
23 #[error("Configuration error: {0}")]
25 Config(String),
26
27 #[error("Job not found: {0}")]
29 JobNotFound(String),
30
31 #[error("Job failed: {0}")]
33 JobFailed(String),
34
35 #[error("Upload error: {0}")]
37 Upload(String),
38
39 #[error("Training backend error: {0}")]
41 Backend(String),
42
43 #[error("I/O error: {0}")]
45 Io(#[from] std::io::Error),
46
47 #[error("JSON error: {0}")]
49 Json(#[from] serde_json::Error),
50
51 #[error("HTTP error: {0}")]
53 #[cfg(feature = "cloud")]
54 Http(#[from] reqwest::Error),
55
56 #[error("{provider}: {feature} is unsupported")]
58 NotImplemented {
59 provider: String,
61 feature: String,
63 },
64
65 #[error("{0}")]
67 Other(String),
68}
69
70pub type TrainingResult<T> = Result<T, TrainingError>;