1use 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>;