codex_utils_image/
error.rs1use image::ImageError;
2use image::ImageFormat;
3use std::path::PathBuf;
4use thiserror::Error;
5
6#[derive(Debug, Error)]
7pub enum ImageProcessingError {
8 #[error("failed to read image at {path}: {source}")]
9 Read {
10 path: PathBuf,
11 #[source]
12 source: std::io::Error,
13 },
14 #[error("failed to decode image at {path}: {source}")]
15 Decode {
16 path: PathBuf,
17 #[source]
18 source: image::ImageError,
19 },
20 #[error("failed to encode image as {format:?}: {source}")]
21 Encode {
22 format: ImageFormat,
23 #[source]
24 source: image::ImageError,
25 },
26}
27
28impl ImageProcessingError {
29 pub fn is_invalid_image(&self) -> bool {
30 matches!(
31 self,
32 ImageProcessingError::Decode {
33 source: ImageError::Decoding(_),
34 ..
35 }
36 )
37 }
38}