1use std::error::Error;
2
3use hydracache_db::DbCacheError;
4use thiserror::Error;
5
6#[derive(Debug, Error)]
8pub enum SqlxCacheError {
9 #[error(transparent)]
11 Cache(#[from] DbCacheError),
12}
13
14pub type Result<T> = std::result::Result<T, SqlxCacheError>;
16
17#[derive(Debug, Error)]
19pub enum SqlxTransactionError<E>
20where
21 E: Error + Send + Sync + 'static,
22{
23 #[error("SQLx transaction body failed: {0}")]
25 Body(E),
26 #[error("SQLx transaction operation failed: {0}")]
28 Sqlx(#[from] sqlx::Error),
29 #[error("SQLx transaction outbox enqueue failed: {0}")]
31 Outbox(#[source] DbCacheError),
32 #[error("SQLx transaction local invalidation failed: {0}")]
34 LocalInvalidation(#[source] hydracache::CacheError),
35 #[error("SQLx transaction durable mode requires SqlxInvalidationOutbox")]
37 MissingOutbox,
38}
39
40pub type TransactionResult<T, E> = std::result::Result<T, SqlxTransactionError<E>>;