use thiserror::Error;
#[derive(Debug, Error)]
pub enum SensorLMError {
#[error("Shape mismatch: expected {expected:?}, got {actual:?}")]
ShapeMismatch {
expected: Vec<usize>,
actual: Vec<usize>,
},
#[error("Caption generation failed: {0}")]
CaptionError(String),
#[error("Dataset error: {0}")]
DatasetError(String),
#[error("Download failed for '{url}': {source}")]
DownloadError {
url: String,
#[source]
source: reqwest::Error,
},
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("JSON error: {0}")]
Json(#[from] serde_json::Error),
#[error("Tokeniser error: {0}")]
TokenizerError(String),
#[error("Quantisation error: {0}")]
QuantisationError(String),
#[error(transparent)]
Other(#[from] anyhow::Error),
}
pub type Result<T> = std::result::Result<T, SensorLMError>;