Skip to main content

aether_sessions/
error.rs

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}