- bump libczi git repo
Publish / Publish (crates.io) (push) Failing after 54s

- replace anyhow with custom error type
This commit is contained in:
w.pomp
2026-03-16 11:11:54 +01:00
parent d4899e275b
commit 0982944195
7 changed files with 270 additions and 249 deletions
+17 -43
View File
@@ -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)),
}
}
}