1use thiserror::Error;
4
5use crate::mnn::MnnError;
6
7#[derive(Error, Debug)]
9pub enum OcrError {
10 #[error("MNN inference error: {0}")]
12 MnnError(#[from] MnnError),
13
14 #[error("Image processing error: {0}")]
16 ImageError(#[from] image::ImageError),
17
18 #[error("IO error: {0}")]
20 IoError(#[from] std::io::Error),
21
22 #[error("Invalid parameter: {0}")]
24 InvalidParameter(String),
25
26 #[error("Model loading failed: {0}")]
28 ModelLoadError(String),
29
30 #[error("Preprocessing error: {0}")]
32 PreprocessError(String),
33
34 #[error("Postprocessing error: {0}")]
36 PostprocessError(String),
37
38 #[error("Detection error: {0}")]
40 DetectionError(String),
41
42 #[error("Recognition error: {0}")]
44 RecognitionError(String),
45
46 #[error("Not initialized: {0}")]
48 NotInitialized(String),
49
50 #[error("Charset parsing error: {0}")]
52 CharsetError(String),
53}
54
55pub type OcrResult<T> = std::result::Result<T, OcrError>;