Skip to main content

mcv_rs/mcv/
error.rs

1use thiserror::Error;
2
3pub type Result<T> = std::result::Result<T, McvError>;
4
5#[derive(Debug, Error)]
6pub enum McvError {
7    #[cfg(feature = "opencv")]
8    #[error("OpenCV error: {0}")]
9    OpenCv(#[from] opencv::Error),
10    #[error("I/O error: {0}")]
11    Io(#[from] std::io::Error),
12    #[error("invalid image: {0}")]
13    InvalidImage(String),
14    #[error("invalid ROI: {0}")]
15    InvalidRoi(String),
16    #[error("invalid threshold {0}; expected [0, 1]")]
17    InvalidThreshold(f64),
18    #[error("invalid color: {0}")]
19    InvalidColor(String),
20    #[error("max_count must be positive")]
21    InvalidMaxCount,
22    #[cfg(feature = "ocr")]
23    #[error("OCR error: {0}")]
24    Ocr(String),
25    #[cfg(feature = "ocr")]
26    #[error("missing OCR model file: {0}")]
27    MissingOcrModel(String),
28    #[cfg(feature = "ocr")]
29    #[error("default OCR models are not configured; call set_default_ocr_models first")]
30    MissingDefaultOcrModels,
31    #[cfg(feature = "ocr")]
32    #[error("thread_count must be positive")]
33    InvalidThreadCount,
34    #[cfg(feature = "image-crate")]
35    #[error("image decode error: {0}")]
36    Image(#[from] image::ImageError),
37}