use std::fmt::Error as FmtError;
use std::io::Error as IoError;
use thiserror::Error;
use image::ImageError;
use png::DecodingError;
#[derive(Error, Debug)]
pub enum PngToWasm4SrcError {
#[error("an IO error occurred")]
IoError(#[from] IoError),
#[error("could not format text")]
FmtError(#[from] FmtError),
#[error("image is not encoded in PNG format")]
PngDecoding(#[from] DecodingError),
#[error("image processing failed")]
Image(#[from] ImageError),
#[error("PNG image is not indexed")]
NotIndexedPng,
#[error("palette has invalid size {0}")]
InvalidPaletteSize(usize),
#[error("file does not have a stem")]
FileWithoutStem,
#[error("path is not valid UTF-8")]
NonUtf8Path,
}