docs: document src/services/types.rs, src/modes/common.rs, and src/services/error.rs
Co-authored-by: aider (openai/andrew/openrouter/sonoma-sky-alpha) <aider@aider.chat>
This commit is contained in:
@@ -1,22 +1,44 @@
|
||||
use thiserror::Error;
|
||||
|
||||
/// Core error types used across services for consistent error handling.
|
||||
///
|
||||
/// This enum centralizes errors from database, I/O, validation, and other operations.
|
||||
/// It implements Error and Debug for propagation and logging. Use this for all service-level errors.
|
||||
///
|
||||
/// # Variants
|
||||
///
|
||||
/// * `Database(rusqlite::Error)` - Wraps SQLite errors from queries or transactions.
|
||||
/// * `Io(std::io::Error)` - Wraps I/O errors from file operations or streams.
|
||||
/// * `ItemNotFound(i64)` - Specific item not found by ID.
|
||||
/// * `ItemNotFoundGeneric` - Generic item not found (no ID specified).
|
||||
/// * `InvalidInput(String)` - User or config input validation failure with message.
|
||||
/// * `Compression(String)` - Compression/decompression errors with details.
|
||||
/// * `Other(anyhow::Error)` - Catch-all for other anyhow-wrapped errors.
|
||||
/// * `Migration(rusqlite_migration::Error)` - Database migration failures.
|
||||
#[derive(Error, Debug)]
|
||||
pub enum CoreError {
|
||||
#[error("Database error: {0}")]
|
||||
/// Database operation failed.
|
||||
Database(#[from] rusqlite::Error),
|
||||
#[error("I/O error: {0}")]
|
||||
/// File or stream I/O operation failed.
|
||||
Io(#[from] std::io::Error),
|
||||
#[error("Item not found with id {0}")]
|
||||
/// Item with the specified ID does not exist in the database.
|
||||
ItemNotFound(i64),
|
||||
#[error("Item not found")]
|
||||
/// Item does not exist (no specific ID).
|
||||
ItemNotFoundGeneric,
|
||||
#[error("Invalid input: {0}")]
|
||||
/// Input validation failed.
|
||||
InvalidInput(String),
|
||||
#[error("Compression error: {0}")]
|
||||
/// Compression or decompression operation failed.
|
||||
Compression(String),
|
||||
#[error(transparent)]
|
||||
/// Other unexpected error.
|
||||
Other(#[from] anyhow::Error),
|
||||
#[error("Migration error: {0}")]
|
||||
/// Database schema migration failed.
|
||||
Migration(#[from] rusqlite_migration::Error),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user