Skip to main content

crabcamera/
errors.rs

1use std::fmt;
2
3#[derive(Debug)]
4pub enum CameraError {
5    InitializationError(String),
6    PermissionDenied(String),
7    CaptureError(String),
8    ControlError(String),
9    StreamError(String),
10    UnsupportedOperation(String),
11    #[cfg(feature = "recording")]
12    EncodingError(String),
13    #[cfg(feature = "recording")]
14    MuxingError(String),
15    #[cfg(feature = "recording")]
16    IoError(String),
17    #[cfg(feature = "audio")]
18    AudioError(String),
19}
20
21impl fmt::Display for CameraError {
22    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
23        match self {
24            CameraError::InitializationError(msg) => {
25                write!(f, "Camera initialization error: {}", msg)
26            }
27            CameraError::PermissionDenied(msg) => write!(f, "Permission denied error: {}", msg),
28            CameraError::CaptureError(msg) => write!(f, "Capture error: {}", msg),
29            CameraError::ControlError(msg) => write!(f, "Camera control error: {}", msg),
30            CameraError::StreamError(msg) => write!(f, "Stream error: {}", msg),
31            CameraError::UnsupportedOperation(msg) => write!(f, "Unsupported operation: {}", msg),
32            #[cfg(feature = "recording")]
33            CameraError::EncodingError(msg) => write!(f, "Encoding error: {}", msg),
34            #[cfg(feature = "recording")]
35            CameraError::MuxingError(msg) => write!(f, "Muxing error: {}", msg),
36            #[cfg(feature = "recording")]
37            CameraError::IoError(msg) => write!(f, "IO error: {}", msg),
38            #[cfg(feature = "audio")]
39            CameraError::AudioError(msg) => write!(f, "Audio error: {}", msg),
40        }
41    }
42}
43
44impl std::error::Error for CameraError {}