1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum Error {
5 #[error(transparent)]
6 Utf8(#[from] std::str::Utf8Error),
7 #[error(transparent)]
8 FromUtf8(#[from] std::string::FromUtf8Error),
9 #[error(transparent)]
10 FromBytesUntilNull(#[from] std::ffi::FromBytesUntilNulError),
11 #[error(transparent)]
12 Nul(#[from] std::ffi::NulError),
13
14 #[error("LibCZIAPI invalid argument")]
15 LibCziApiInvalidArgument,
16 #[error("LibCZIAPI invalid handle")]
17 LibCziApiInvalidHandle,
18 #[error("LibCZIAPI out of memory")]
19 LibCziApiOutOfMemory,
20 #[error("LibCZIAPI index out of range")]
21 LibCziApiIndexOutOfRange,
22 #[error("LibCZIAPI lock-unlock semantic violated")]
23 LibCziApiLockUnlockSemanticViolated,
24 #[error("LibCZIAPI unspecified error")]
25 LibCziApiUnspecifiedError,
26 #[error("LibCZIAPI unknown error code: {0}")]
27 LibCziApiUnknownError(usize),
28 #[error("unknown dimension: {0}")]
29 UnknownDimension(String),
30 #[error("unknown data type: {0}")]
31 UnknownDataType(i32),
32 #[error("unknown pixel type: {0}")]
33 UnknownPixelType(i32),
34 #[error("wrong attachment type: {0}")]
35 InvalidAttachmentType(String),
36 #[error("raw data is malformed")]
37 MalformedData,
38}