db_pool/sync/backend/
trait.rs1use std::fmt::Debug;
2
3use r2d2::{ManageConnection, Pool};
4use uuid::Uuid;
5
6use super::error::Error;
7
8pub trait Backend: Sized + Send + Sync + 'static {
10 type ConnectionManager: ManageConnection;
12 type ConnectionError: Debug;
14 type QueryError: Debug;
16
17 fn init(&self) -> Result<(), Error<Self::ConnectionError, Self::QueryError>>;
19
20 #[allow(clippy::complexity)]
22 fn create(
23 &self,
24 db_id: Uuid,
25 restrict_privileges: bool,
26 ) -> Result<Pool<Self::ConnectionManager>, Error<Self::ConnectionError, Self::QueryError>>;
27
28 fn clean(&self, db_id: Uuid) -> Result<(), Error<Self::ConnectionError, Self::QueryError>>;
30
31 fn drop(
33 &self,
34 db_id: Uuid,
35 is_restricted: bool,
36 ) -> Result<(), Error<Self::ConnectionError, Self::QueryError>>;
37}