1use atomr_core::actor::AskError;
4use atomr_persistence::JournalError;
5
6#[derive(Debug, thiserror::Error)]
12#[non_exhaustive]
13pub enum PatternError<E> {
14 #[error(transparent)]
15 Domain(E),
16
17 #[error("journal error: {0}")]
18 Journal(#[from] JournalError),
19
20 #[error("ask: {0}")]
21 Ask(#[from] AskError),
22
23 #[error("codec error: {0}")]
24 Codec(String),
25
26 #[error("invariant violation: {0}")]
27 Invariant(String),
28
29 #[error("pattern not configured: {0}")]
30 NotConfigured(&'static str),
31
32 #[error("intercepted: {0}")]
33 Intercepted(String),
34
35 #[error("concurrency conflict: expected version {expected}, actual {actual}")]
36 ConcurrencyConflict { expected: u64, actual: u64 },
37
38 #[error("reply channel dropped")]
39 ReplyDropped,
40}