Skip to main content

ad_core/
error.rs

1use asyn_rs::error::AsynError;
2
3/// Error type for areaDetector operations.
4#[derive(Debug, thiserror::Error)]
5pub enum ADError {
6    #[error("invalid dimensions: {0}")]
7    InvalidDimensions(String),
8
9    #[error("buffer size mismatch: expected {expected}, actual {actual}")]
10    BufferSizeMismatch { expected: usize, actual: usize },
11
12    #[error("data type mismatch: expected {expected:?}, actual {actual:?}")]
13    DataTypeMismatch {
14        expected: super::ndarray::NDDataType,
15        actual: super::ndarray::NDDataType,
16    },
17
18    #[error("pool exhausted: {0} bytes requested, {1} bytes limit")]
19    PoolExhausted(usize, usize),
20
21    #[error("unsupported conversion: {0}")]
22    UnsupportedConversion(String),
23
24    #[error("I/O error: {0}")]
25    Io(#[from] std::io::Error),
26
27    #[error("asyn error: {0}")]
28    Asyn(#[from] AsynError),
29}
30
31pub type ADResult<T> = Result<T, ADError>;