Skip to main content

terraphim_persistence/
error.rs

1use terraphim_settings;
2
3/// Errors arising from persistence layer operations.
4#[derive(thiserror::Error, Debug)]
5pub enum Error {
6    #[error("Error with profile: {0}")]
7    Profile(String),
8
9    #[error("OpenDal error: {0}")]
10    OpenDal(Box<opendal::Error>),
11
12    #[error("JSON error: {0}")]
13    Json(#[from] serde_json::Error),
14
15    #[error("No operator found")]
16    NoOperator,
17
18    #[error("Not found: {0}")]
19    NotFound(String),
20
21    #[error("Settings error: {0}")]
22    Settings(#[from] terraphim_settings::Error),
23
24    #[error("IO error: {0}")]
25    Io(#[from] std::io::Error),
26
27    #[error("Serialization error: {0}")]
28    Serde(String),
29}
30
31impl From<opendal::Error> for Error {
32    fn from(error: opendal::Error) -> Self {
33        Error::OpenDal(Box::new(error))
34    }
35}
36
37/// Convenience alias for `Result<T, Error>` used throughout this crate.
38pub type Result<T> = std::result::Result<T, Error>;