Skip to main content

db_http_core/
backend.rs

1use crate::error::Error;
2use crate::types::{Query, QueryResult, Transaction};
3use std::future::Future;
4
5pub trait DatabaseBackend: Send + Sync {
6    fn execute_query(&self, query: &Query)
7        -> impl Future<Output = Result<QueryResult, Error>> + Send;
8
9    fn execute_transaction(&self, transaction: &Transaction)
10        -> impl Future<Output = Result<Vec<QueryResult>, Error>> + Send;
11}
12
13impl<T: DatabaseBackend> DatabaseBackend for &T {
14    fn execute_query(&self, query: &Query)
15        -> impl Future<Output = Result<QueryResult, Error>> + Send {
16        (*self).execute_query(query)
17    }
18
19    fn execute_transaction(&self, transaction: &Transaction)
20        -> impl Future<Output = Result<Vec<QueryResult>, Error>> + Send {
21        (*self).execute_transaction(transaction)
22    }
23}