Skip to main content

fond_store/
error.rs

1/// Store-level errors for fond persistence.
2#[derive(Debug, thiserror::Error)]
3pub enum StoreError {
4    /// Database connection or query error.
5    #[error("database error: {message}")]
6    Database { message: String },
7
8    /// Migration error.
9    #[error("migration error: {message}")]
10    Migration { message: String },
11
12    /// I/O error (file reading during reindex).
13    #[error("io error: {source}")]
14    Io {
15        #[from]
16        source: std::io::Error,
17    },
18
19    /// Domain-level parse error during reindex.
20    #[error("parse error for {file}: {message}")]
21    Parse { file: String, message: String },
22}
23
24impl From<rusqlite::Error> for StoreError {
25    fn from(e: rusqlite::Error) -> Self {
26        Self::Database {
27            message: e.to_string(),
28        }
29    }
30}