db_pool/async/backend/
trait.rs1use std::fmt::Debug;
2
3use async_trait::async_trait;
4use uuid::Uuid;
5
6use super::error::Error;
7
8#[async_trait]
10pub trait Backend: Sized + Send + Sync + 'static {
11 type Pool: Send;
13
14 type BuildError: Debug + Send;
16 type PoolError: Debug + Send;
18 type ConnectionError: Debug;
20 type QueryError: Debug;
22
23 async fn init(
25 &self,
26 ) -> Result<(), Error<Self::BuildError, Self::PoolError, Self::ConnectionError, Self::QueryError>>;
27
28 async fn create(
30 &self,
31 db_id: Uuid,
32 restrict_privileges: bool,
33 ) -> Result<
34 Self::Pool,
35 Error<Self::BuildError, Self::PoolError, Self::ConnectionError, Self::QueryError>,
36 >;
37
38 async fn clean(
40 &self,
41 db_id: Uuid,
42 ) -> Result<(), Error<Self::BuildError, Self::PoolError, Self::ConnectionError, Self::QueryError>>;
43
44 async fn drop(
46 &self,
47 db_id: Uuid,
48 is_restricted: bool,
49 ) -> Result<(), Error<Self::BuildError, Self::PoolError, Self::ConnectionError, Self::QueryError>>;
50}