use std::path::PathBuf;
#[derive(Debug, thiserror::Error)]
pub enum PersistenceError {
#[error("Failed to determine config directory for app '{app_name}'")]
NoConfigDir {
app_name: String,
},
#[error("Failed to create config directory '{path}': {source}")]
CreateDirFailed {
path: PathBuf,
#[source]
source: std::io::Error,
},
#[error("Failed to read config file '{path}': {source}")]
ReadFailed {
path: PathBuf,
#[source]
source: std::io::Error,
},
#[error("Failed to write config file '{path}': {source}")]
WriteFailed {
path: PathBuf,
#[source]
source: std::io::Error,
},
#[error("Failed to parse config file '{path}': {source}")]
ParseFailed {
path: PathBuf,
#[source]
source: serde_json::Error,
},
#[error("Invalid window state: {reason}")]
InvalidState {
reason: String,
},
}