use thiserror::Error;
#[derive(Error, Debug)]
pub enum ImageError {
#[error("Failed to fetch image from {url}: {source}")]
FetchError {
url: String,
#[source]
source: reqwest::Error,
},
#[error("Failed to decode image: {0}")]
DecodeError(#[from] image::ImageError),
#[error("Failed to encode sixel: {0}")]
SixelEncodeError(String),
#[error("Invalid dimensions: {0}")]
InvalidDimensions(String),
#[error("IO error: {0}")]
IoError(#[from] std::io::Error),
}
#[derive(Error, Debug)]
pub enum DTextError {
#[error("Invalid color format: {0}")]
InvalidColor(String),
#[error("Unclosed tag: {0}")]
UnclosedTag(String),
}
pub type Result<T> = std::result::Result<T, Box<dyn std::error::Error + Send + Sync>>;