use cairo::{Error as CairoError, IoError};
use std::io::Error as StdError;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum RenderError {
#[error("Cairo rendering error: {0}")]
Cairo(String),
#[error("Invalid configuration: {0}")]
InvalidConfig(String),
#[error("Concave hull calculation failed")]
GeometryError,
#[error("IO error: {0}")]
Io(#[from] StdError),
}
impl From<CairoError> for RenderError {
fn from(err: CairoError) -> Self {
RenderError::Cairo(err.to_string())
}
}
impl From<IoError> for RenderError {
fn from(err: IoError) -> Self {
RenderError::Cairo(err.to_string())
}
}