use std::path::PathBuf;
#[derive(Debug, thiserror::Error)]
pub enum SessionStoreError {
#[error("session store IO error at {path}: {source}")]
Io {
path: PathBuf,
source: std::io::Error,
},
#[error("session store serialization error: {0}")]
Json(#[from] serde_json::Error),
#[error("turn {turn} not found in session {session}")]
TurnNotFound {
session: String,
turn: u64,
},
#[error("failed to create session directory {path}: {source}")]
CreateDir {
path: PathBuf,
source: std::io::Error,
},
}
impl SessionStoreError {
pub(crate) fn io(path: impl Into<PathBuf>, source: std::io::Error) -> Self {
Self::Io {
path: path.into(),
source,
}
}
}