1use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum AuditError {
8 #[error("storage error: {0}")]
10 StorageError(String),
11
12 #[error("serialization error: {0}")]
14 SerializationError(String),
15
16 #[error("audit entry not found: {entry_id}")]
18 EntryNotFound {
19 entry_id: String,
21 },
22
23 #[error("chain integrity violation at entry {entry_id}: {reason}")]
25 IntegrityViolation {
26 entry_id: String,
28 reason: String,
30 },
31
32 #[error("invalid signature on entry {entry_id}")]
34 InvalidSignature {
35 entry_id: String,
37 },
38
39 #[error("session not found: {session_id}")]
41 SessionNotFound {
42 session_id: String,
44 },
45
46 #[error("crypto error: {0}")]
48 CryptoError(#[from] astrid_crypto::CryptoError),
49}
50
51pub type AuditResult<T> = Result<T, AuditError>;