appletheia_application/repository/
repository_error.rs1use std::fmt::Debug;
2use thiserror::Error;
3
4use appletheia_domain::Aggregate;
5
6use crate::event::{EventReaderError, EventWriterError};
7use crate::snapshot::{SnapshotReaderError, SnapshotWriterError};
8
9#[derive(Debug, Error)]
10pub enum RepositoryError<A: Aggregate> {
11 #[error("aggregate error: {0}")]
12 Aggregate(#[source] A::Error),
13
14 #[error("event reader error: {0}")]
15 EventReader(#[from] EventReaderError),
16
17 #[error("snapshot reader error: {0}")]
18 SnapshotReader(#[from] SnapshotReaderError),
19
20 #[error("event writer error: {0}")]
21 EventWriter(#[from] EventWriterError),
22
23 #[error("snapshot writer error: {0}")]
24 SnapshotWriter(#[from] SnapshotWriterError),
25}