1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use rustorm_dao::TableName;
use rustorm_dao::{Rows, Value};
use entity::EntityManager;
use table::SchemaContent;
use table::Table;
use users::User;
use users::Role;
use error::DbError;
use rustorm_dao::FromDao;
#[derive(Serialize, FromDao)]
pub struct DatabaseName{
name: String,
description: Option<String>,
}
pub trait Database {
fn execute_sql_with_return(&self, sql: &str, param: &[&Value]) -> Result<Rows, DbError>;
fn get_table(&self, em: &EntityManager, table_name: &TableName) -> Result<Table, DbError>;
fn get_all_tables(&self, em: &EntityManager) -> Result<Vec<Table>, DbError>;
fn get_grouped_tables(&self, em: &EntityManager) -> Result<Vec<SchemaContent>, DbError>;
fn get_users(&self, em: &EntityManager) -> Result<Vec<User>, DbError>;
fn get_roles(&self, em: &EntityManager, username: &str) -> Result<Vec<Role>, DbError>;
fn get_database_name(&self, em: &EntityManager) -> Result<Option<DatabaseName>, DbError>;
}