- replace anyhow with custom error type
This commit is contained in:
+17
-43
@@ -1,42 +1,16 @@
|
||||
use anyhow::{Error, Result, anyhow};
|
||||
use std::fmt;
|
||||
use crate::error::Error;
|
||||
use std::mem::MaybeUninit;
|
||||
use std::os::raw::c_int;
|
||||
|
||||
/// the error type for libCZIAPI
|
||||
#[derive(Clone, Debug)]
|
||||
pub enum LibCZIApiError {
|
||||
OK,
|
||||
InvalidArgument,
|
||||
InvalidHandle,
|
||||
OutOfMemory,
|
||||
IndexOutOfRange,
|
||||
LockUnlockSemanticViolated,
|
||||
UnspecifiedError,
|
||||
}
|
||||
|
||||
impl std::error::Error for LibCZIApiError {}
|
||||
|
||||
impl TryFrom<c_int> for LibCZIApiError {
|
||||
type Error = Error;
|
||||
|
||||
fn try_from(code: c_int) -> Result<Self> {
|
||||
match code {
|
||||
0 => Ok(LibCZIApiError::OK),
|
||||
1 => Err(Error::from(LibCZIApiError::InvalidArgument)),
|
||||
2 => Err(Error::from(LibCZIApiError::InvalidHandle)),
|
||||
3 => Err(Error::from(LibCZIApiError::OutOfMemory)),
|
||||
4 => Err(Error::from(LibCZIApiError::IndexOutOfRange)),
|
||||
20 => Err(Error::from(LibCZIApiError::LockUnlockSemanticViolated)),
|
||||
50 => Err(Error::from(LibCZIApiError::UnspecifiedError)),
|
||||
_ => Err(anyhow!("Unknown error code {}", code)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Display for LibCZIApiError {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
write!(f, "LibCZIApi {self:?}")
|
||||
pub fn lib_czi_error(code: std::ffi::c_int) -> Result<(), Error> {
|
||||
match code {
|
||||
0 => Ok(()),
|
||||
1 => Err(Error::LibCziApiInvalidArgument),
|
||||
2 => Err(Error::LibCziApiInvalidHandle),
|
||||
3 => Err(Error::LibCziApiOutOfMemory),
|
||||
4 => Err(Error::LibCziApiIndexOutOfRange),
|
||||
20 => Err(Error::LibCziApiLockUnlockSemanticViolated),
|
||||
50 => Err(Error::LibCziApiUnspecifiedError),
|
||||
_ => Err(Error::LibCziApiUnknownError(code as usize)),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,7 +53,7 @@ impl Dimension {
|
||||
impl TryFrom<i32> for Dimension {
|
||||
type Error = Error;
|
||||
|
||||
fn try_from(dimension: i32) -> Result<Self> {
|
||||
fn try_from(dimension: i32) -> Result<Self, Error> {
|
||||
match dimension {
|
||||
1 => Ok(Dimension::Z),
|
||||
2 => Ok(Dimension::C),
|
||||
@@ -90,7 +64,7 @@ impl TryFrom<i32> for Dimension {
|
||||
7 => Ok(Dimension::H),
|
||||
8 => Ok(Dimension::V),
|
||||
9 => Ok(Dimension::B),
|
||||
_ => Err(anyhow!("Unknown dimension value {}", dimension)),
|
||||
_ => Err(Error::UnknownDimension(dimension.to_string())),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -105,11 +79,11 @@ pub enum RawDataType {
|
||||
impl TryFrom<i32> for RawDataType {
|
||||
type Error = Error;
|
||||
|
||||
fn try_from(raw_data_type: i32) -> Result<Self> {
|
||||
fn try_from(raw_data_type: i32) -> Result<Self, Error> {
|
||||
match raw_data_type {
|
||||
0 => Ok(RawDataType::Data),
|
||||
1 => Ok(RawDataType::Metadata),
|
||||
_ => Err(anyhow!("Unknown data type {}", raw_data_type)),
|
||||
_ => Err(Error::UnknownDataType(raw_data_type)),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -133,7 +107,7 @@ pub enum PixelType {
|
||||
impl TryFrom<i32> for PixelType {
|
||||
type Error = Error;
|
||||
|
||||
fn try_from(pixel_type: i32) -> Result<Self> {
|
||||
fn try_from(pixel_type: i32) -> Result<Self, Error> {
|
||||
match pixel_type {
|
||||
0 => Ok(PixelType::Gray8),
|
||||
1 => Ok(PixelType::Gray16),
|
||||
@@ -146,7 +120,7 @@ impl TryFrom<i32> for PixelType {
|
||||
11 => Ok(PixelType::Bgr192ComplexFloat),
|
||||
12 => Ok(PixelType::Gray32),
|
||||
13 => Ok(PixelType::Gray64Float),
|
||||
_ => Err(anyhow!("Unknown pixel type {}", pixel_type)),
|
||||
_ => Err(Error::UnknownPixelType(pixel_type)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user