use thiserror::Error; #[derive(Error, Debug)] pub enum CoreError { #[error("Database error: {0}")] Database(#[from] rusqlite::Error), #[error("I/O error: {0}")] Io(#[from] std::io::Error), #[error("Item not found with id {0}")] ItemNotFound(i64), #[error("Item not found")] ItemNotFoundGeneric, #[error("Invalid input: {0}")] InvalidInput(String), #[error("Compression error: {0}")] Compression(String), #[error(transparent)] Other(#[from] anyhow::Error), #[error("Migration error: {0}")] Migration(#[from] rusqlite_migration::Error), }