use crate::data::database::DatabaseType;
use crate::model_manager::adapters::{
DatabaseAdapter, MySqlAdapter, PostgresAdapter, SqliteAdapter,
};
use crate::model_manager::{Error, Result};
#[derive(Debug, Clone)]
pub struct ModelManagerConfig {
pub database_type: DatabaseType,
}
impl ModelManagerConfig {
pub fn new(database_type: DatabaseType) -> Self {
Self { database_type }
}
pub fn get_adapter(&self) -> Result<Box<dyn DatabaseAdapter<Error = Error>>> {
match self.database_type {
DatabaseType::Sqlite => Ok(Box::new(SqliteAdapter::new())),
DatabaseType::MySql => Ok(Box::new(MySqlAdapter::new())),
DatabaseType::Postgres => Ok(Box::new(PostgresAdapter::new())),
}
}
}