1#[derive(Debug, thiserror::Error)]
2pub enum SessionLogError {
3 #[error(transparent)]
4 Io(#[from] std::io::Error),
5 #[error("missing session metadata line")]
6 MissingMetadata,
7 #[error("invalid session metadata on line {line_number}: {source}")]
8 InvalidMetadata { line_number: usize, source: serde_json::Error },
9}
10
11impl From<SessionLogError> for SessionStoreError {
12 fn from(error: SessionLogError) -> Self {
13 match error {
14 SessionLogError::Io(error) => Self::Io(error),
15 SessionLogError::MissingMetadata => Self::MissingMetadata,
16 SessionLogError::InvalidMetadata { line_number, source } => Self::InvalidMetadata { line_number, source },
17 }
18 }
19}
20
21#[derive(Debug, thiserror::Error)]
22pub enum SessionStoreError {
23 #[error(transparent)]
24 Io(#[from] std::io::Error),
25 #[error("Aether home directory is not configured")]
26 MissingAetherHome,
27 #[error("missing session metadata line")]
28 MissingMetadata,
29 #[error("invalid session metadata on line {line_number}: {source}")]
30 InvalidMetadata { line_number: usize, source: serde_json::Error },
31 #[error("failed to serialize session data: {0}")]
32 Serialization(#[from] serde_json::Error),
33 #[error("prompt history index failed: {0}")]
34 PromptHistory(#[source] std::io::Error),
35}