use cairo::{Error as CairoError, IoError}; use std::io::Error as StdError; use thiserror::Error; /// Error types for rendering #[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 for RenderError { fn from(err: CairoError) -> Self { RenderError::Cairo(err.to_string()) } } impl From for RenderError { fn from(err: IoError) -> Self { RenderError::Cairo(err.to_string()) } }