Files
photocraft/crates/codecs/src/error.rs
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

32 lines
1.1 KiB
Rust
Raw Normal View History

2026-09-30 05:02:08 -04:00
use crate::format::Format;
/// Errors produced by this crate. Decoders never panic on malformed input;
/// they return [`CodecError::Malformed`] instead.
#[derive(Debug, thiserror::Error)]
pub enum CodecError {
#[error("unrecognized image format")]
UnknownFormat,
#[error("{format:?}: {reason}")]
Unsupported { format: Format, reason: String },
#[error("{format:?}: malformed data: {message}")]
Malformed { format: Format, message: String },
#[error("limit exceeded: {0}")]
LimitExceeded(String),
#[error("{format:?}: encode failed: {message}")]
Encode { format: Format, message: String },
#[error("invalid image: {0}")]
InvalidImage(String),
}
impl CodecError {
pub(crate) fn malformed(format: Format, e: impl std::fmt::Display) -> Self {
CodecError::Malformed { format, message: e.to_string() }
}
pub(crate) fn encode(format: Format, e: impl std::fmt::Display) -> Self {
CodecError::Encode { format, message: e.to_string() }
}
pub(crate) fn unsupported(format: Format, reason: impl Into<String>) -> Self {
CodecError::Unsupported { format, reason: reason.into() }
}
}