1use std::path::PathBuf;
4
5pub type Result<T> = std::result::Result<T, Error>;
7
8#[derive(Debug, thiserror::Error)]
10pub enum Error {
11 #[error("Database error: {0}")]
13 Database(#[from] rusqlite::Error),
14
15 #[error("Failed to create database directory {path}: {source}")]
17 CreateDirectory {
18 path: PathBuf,
19 source: std::io::Error,
20 },
21
22 #[error("Device not found: {0}")]
24 DeviceNotFound(String),
25
26 #[error("Invalid timestamp: {0}")]
28 InvalidTimestamp(String),
29
30 #[error("Serialization error: {0}")]
32 Serialization(#[from] serde_json::Error),
33
34 #[error("IO error: {0}")]
36 Io(#[from] std::io::Error),
37}