Skip to main content

exiftool_rs/
error.rs

1use std::io;
2
3/// All errors that can occur in exiftool operations.
4#[derive(Debug, thiserror::Error)]
5pub enum Error {
6    #[error("I/O error: {0}")]
7    Io(#[from] io::Error),
8
9    #[error("unsupported file type: {0}")]
10    UnsupportedFileType(String),
11
12    #[error("invalid data: {0}")]
13    InvalidData(String),
14
15    #[error("tag not found: {0}")]
16    TagNotFound(String),
17
18    #[error("invalid TIFF header")]
19    InvalidTiffHeader,
20
21    #[error("invalid EXIF data: {0}")]
22    InvalidExif(String),
23
24    #[error("invalid IPTC data: {0}")]
25    InvalidIptc(String),
26
27    #[error("invalid XMP data: {0}")]
28    InvalidXmp(String),
29
30    #[error("truncated data: expected {expected} bytes, got {actual}")]
31    TruncatedData { expected: usize, actual: usize },
32
33    #[error("value conversion error: {0}")]
34    ConversionError(String),
35}
36
37pub type Result<T> = std::result::Result<T, Error>;