use thiserror::Error;
pub type SceneResult<T> = Result<T, SceneError>;
#[derive(Error, Debug)]
pub enum SceneError {
#[error("Invalid dimensions: {0}")]
InvalidDimensions(String),
#[error("Invalid parameter: {0}")]
InvalidParameter(String),
#[error("Feature extraction failed: {0}")]
FeatureExtractionFailed(String),
#[error("Classification failed: {0}")]
ClassificationFailed(String),
#[error("Detection failed: {0}")]
DetectionFailed(String),
#[error("Segmentation failed: {0}")]
SegmentationFailed(String),
#[error("Model not loaded: {0}")]
ModelNotLoaded(String),
#[error("Insufficient data: {0}")]
InsufficientData(String),
#[error("CV error: {0}")]
CvError(#[from] oximedia_cv::error::CvError),
#[error("Core error: {0}")]
CoreError(#[from] oximedia_core::error::OxiError),
}