//! CAS Engine 错误类型定义 use thiserror::Error; /// CAS Engine 错误类型 #[derive(Error, Debug)] pub enum CasError { /// IO 错误 #[error("IO error: {0}")] Io(#[from] std::io::Error), /// Hash 不匹配 #[error("Hash mismatch: expected {expected}, got {actual}")] HashMismatch { /// 期望的 Hash expected: String, /// 实际的 Hash actual: String, }, /// 对象不存在 #[error("Object not found: {0}")] ObjectNotFound(String), /// Hash 格式无效 #[error("Invalid hash: {0}")] InvalidHash(String), /// 引用计数下溢 #[error("Reference count is already zero: {0}")] ReferenceUnderflow(String), /// 数据库错误 #[error("Database error: {0}")] Database(String), /// 其他错误 #[error(transparent)] Other(#[from] anyhow::Error), } /// CAS Engine Result 类型 pub type Result = std::result::Result; impl From for CasError { fn from(error: sqlx::Error) -> Self { Self::Database(error.to_string()) } }