use thiserror::Error;
pub type Result<T> = std::result::Result<T, Error>;
#[derive(Debug, Error)]
pub enum Error {
#[error("output format '{0}' is not enabled; enable the '{0}' feature in Cargo.toml")]
FormatNotEnabled(&'static str),
#[error("invalid configuration: {0}")]
InvalidConfig(String),
#[error("PNG rendering failed: {0}")]
PngRender(String),
#[error("PDF rendering failed: {0}")]
PdfRender(String),
#[error("PNG encoding failed: {0}")]
PngEncode(String),
#[error("PDF creation failed: {0}")]
PdfCreate(String),
#[error("layout computation failed: {0}")]
Layout(String),
#[error("font error: {0}")]
Font(String),
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
}