testkit_postgres/
common_traits.rs1use async_trait::async_trait;
2
3#[async_trait]
4pub trait TransactionTrait: Send + Sync {
5 type Error: Send + Sync;
6 async fn commit(&mut self) -> Result<(), Self::Error>;
7 async fn rollback(&mut self) -> Result<(), Self::Error>;
8}
9
10#[async_trait]
11pub trait TransactionManager: Send + Sync {
12 type Error: Send + Sync;
13 type Tx: TransactionTrait<Error = Self::Error> + Send + Sync;
14 type Connection: Send + Sync;
15
16 async fn begin_transaction(&mut self) -> Result<Self::Tx, Self::Error>;
17 async fn commit_transaction(tx: &mut Self::Tx) -> Result<(), Self::Error>;
18 async fn rollback_transaction(tx: &mut Self::Tx) -> Result<(), Self::Error>;
19}