Skip to main content

appletheia_application/repository/
repository_error.rs

1use 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}