active_storage/
errors.rs

1//! # Storage Errors Module
2//!
3//! The `storage_errors` module defines custom error types for storage-related
4//! operations.
5use std::collections::BTreeMap;
6
7#[derive(Debug, thiserror::Error)]
8pub enum DriverError {
9    #[error("Resource not found")]
10    ResourceNotFound,
11
12    #[error("The provided path contains invalid characters")]
13    InvalidPath,
14
15    #[error("Failed to decode file contents")]
16    DecodeError,
17
18    #[error("network error")]
19    Network(),
20
21    #[error(transparent)]
22    Any(#[from] Box<dyn std::error::Error + Send + Sync>),
23}
24
25#[derive(Debug, thiserror::Error)]
26pub enum MirrorError {
27    #[error("Mirror name not found")]
28    MirrorFailedOnStores(BTreeMap<String, DriverError>),
29
30    #[error("Mirror failed on store")]
31    MirrorFailedOnStore(String, DriverError),
32}
33
34pub type DriverResult<T> = std::result::Result<T, DriverError>;
35pub type MirrorResult<T> = std::result::Result<T, MirrorError>;