Skip to content

Commit 4432707

Browse files
committed
[#176] 프로젝트 레이아웃 재구성
1 parent cc0ae1e commit 4432707

202 files changed

Lines changed: 943 additions & 1001 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/common/command.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
use std::{
2+
io,
3+
process::{Command, Output},
4+
};
5+
6+
#[mockall::automock]
7+
pub trait CommandRunner {
8+
fn run(&self, command: &mut Command) -> io::Result<Output>;
9+
}
10+
11+
pub struct RealCommandRunner;
12+
13+
impl CommandRunner for RealCommandRunner {
14+
fn run(&self, command: &mut Command) -> io::Result<Output> {
15+
command.output()
16+
}
17+
}
Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
use std::process::{Command, Output};
2-
31
use futures::io;
42

53
#[mockall::automock]
@@ -21,16 +19,3 @@ impl FileSystem for RealFileSystem {
2119
tokio::fs::write(path, content).await
2220
}
2321
}
24-
25-
#[mockall::automock]
26-
pub trait CommandRunner {
27-
fn run(&self, command: &mut Command) -> io::Result<Output>;
28-
}
29-
30-
pub struct RealCommandRunner;
31-
32-
impl CommandRunner for RealCommandRunner {
33-
fn run(&self, command: &mut Command) -> io::Result<Output> {
34-
command.output()
35-
}
36-
}

src/common/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
pub mod command;
2+
pub mod fs;
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use crate::constants::{
88
};
99

1010
#[derive(Deserialize, Serialize, Debug, Clone)]
11-
pub struct GlobalConfig {
11+
pub struct LaunchConfig {
1212
pub port: u32,
1313
pub host: String,
1414
pub data_directory: String,
@@ -20,7 +20,7 @@ pub struct GlobalConfig {
2020
}
2121

2222
#[allow(clippy::derivable_impls)]
23-
impl std::default::Default for GlobalConfig {
23+
impl std::default::Default for LaunchConfig {
2424
fn default() -> Self {
2525
let base_path = PathBuf::from(DEFAULT_CONFIG_BASEPATH);
2626

@@ -44,7 +44,7 @@ impl std::default::Default for GlobalConfig {
4444
}
4545
}
4646

47-
impl GlobalConfig {
47+
impl LaunchConfig {
4848
pub fn default_config_path() -> PathBuf {
4949
let base_path = PathBuf::from(DEFAULT_CONFIG_BASEPATH);
5050
base_path.join(DEFAULT_CONFIG_FILENAME)

src/config/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pub mod launch_config;

src/executor/implements/ddl/alter_database.rs renamed to src/engine/actions/ddl/alter_database.rs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
use std::io::ErrorKind;
22

3-
use crate::ast::ddl::alter_database::{AlterDatabaseAction, AlterDatabaseQuery};
4-
use crate::errors::predule::ExecuteError;
3+
use crate::engine::DBEngine;
4+
use crate::engine::ast::ddl::alter_database::{AlterDatabaseAction, AlterDatabaseQuery};
5+
6+
use crate::engine::encoder::schema_encoder::StorageEncoder;
7+
use crate::engine::schema::database::DatabaseSchema;
8+
use crate::engine::types::{
9+
ExecuteColumn, ExecuteColumnType, ExecuteField, ExecuteResult, ExecuteRow,
10+
};
511
use crate::errors::RRDBError;
6-
use crate::executor::config::database::DatabaseConfig;
7-
use crate::executor::encoder::storage::StorageEncoder;
8-
use crate::executor::predule::{ExecuteResult, Executor};
9-
use crate::executor::result::{ExecuteColumn, ExecuteColumnType, ExecuteField, ExecuteRow};
12+
use crate::errors::predule::ExecuteError;
1013

11-
impl Executor {
14+
impl DBEngine {
1215
pub async fn alter_database(
1316
&self,
1417
query: AlterDatabaseQuery,
@@ -43,7 +46,7 @@ impl Executor {
4346
if let Err(error) = result {
4447
match error.kind() {
4548
ErrorKind::NotFound => {
46-
return Err(ExecuteError::wrap("database not found"))
49+
return Err(ExecuteError::wrap("database not found"));
4750
}
4851
_ => {
4952
return Err(ExecuteError::wrap("database alter failed"));
@@ -57,7 +60,7 @@ impl Executor {
5760

5861
match tokio::fs::read(&config_path).await {
5962
Ok(data) => {
60-
let database_config: Option<DatabaseConfig> =
63+
let database_config: Option<DatabaseSchema> =
6164
encoder.decode(data.as_slice());
6265

6366
match database_config {

src/executor/implements/ddl/alter_table.rs renamed to src/engine/actions/ddl/alter_table.rs

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
use std::io::ErrorKind;
22

3-
use crate::ast::ddl::alter_table::{AlterColumnAction, AlterTableAction, AlterTableQuery};
4-
use crate::ast::types::TableName;
5-
use crate::errors::predule::ExecuteError;
6-
use crate::errors::RRDBError;
7-
use crate::executor::config::table::TableConfig;
8-
use crate::executor::encoder::storage::StorageEncoder;
9-
use crate::executor::predule::{
10-
ExecuteColumn, ExecuteColumnType, ExecuteField, ExecuteResult, ExecuteRow, Executor,
3+
use crate::engine::DBEngine;
4+
use crate::engine::ast::ddl::alter_table::{AlterColumnAction, AlterTableAction, AlterTableQuery};
5+
use crate::engine::ast::types::TableName;
6+
use crate::engine::encoder::schema_encoder::StorageEncoder;
7+
use crate::engine::schema::table::TableSchema;
8+
use crate::engine::types::{
9+
ExecuteColumn, ExecuteColumnType, ExecuteField, ExecuteResult, ExecuteRow,
1110
};
11+
use crate::errors::RRDBError;
12+
use crate::errors::predule::ExecuteError;
1213

13-
impl Executor {
14+
impl DBEngine {
1415
pub async fn alter_table(&self, query: AlterTableQuery) -> Result<ExecuteResult, RRDBError> {
1516
let encoder = StorageEncoder::new();
1617

@@ -117,7 +118,7 @@ impl Executor {
117118

118119
match tokio::fs::read(&config_path).await {
119120
Ok(data) => {
120-
let table_config: Option<TableConfig> =
121+
let table_config: Option<TableSchema> =
121122
encoder.decode(data.as_slice());
122123

123124
match table_config {
@@ -169,7 +170,7 @@ impl Executor {
169170

170171
match tokio::fs::read(&config_path).await {
171172
Ok(data) => {
172-
let table_config: Option<TableConfig> =
173+
let table_config: Option<TableSchema> =
173174
encoder.decode(data.as_slice());
174175

175176
match table_config {
@@ -221,7 +222,7 @@ impl Executor {
221222

222223
match tokio::fs::read(&config_path).await {
223224
Ok(data) => {
224-
let table_config: Option<TableConfig> =
225+
let table_config: Option<TableSchema> =
225226
encoder.decode(data.as_slice());
226227

227228
match table_config {
@@ -272,7 +273,7 @@ impl Executor {
272273

273274
match tokio::fs::read(&config_path).await {
274275
Ok(data) => {
275-
let table_config: Option<TableConfig> =
276+
let table_config: Option<TableSchema> =
276277
encoder.decode(data.as_slice());
277278

278279
match table_config {

src/executor/implements/ddl/create_database.rs renamed to src/engine/actions/ddl/create_database.rs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
use std::io::ErrorKind;
22

3-
use crate::ast::ddl::create_database::CreateDatabaseQuery;
4-
use crate::errors::predule::ExecuteError;
3+
use crate::engine::DBEngine;
4+
use crate::engine::ast::ddl::create_database::CreateDatabaseQuery;
5+
use crate::engine::encoder::schema_encoder::StorageEncoder;
6+
use crate::engine::schema::database::DatabaseSchema;
7+
8+
use crate::engine::types::{
9+
ExecuteColumn, ExecuteColumnType, ExecuteField, ExecuteResult, ExecuteRow,
10+
};
511
use crate::errors::RRDBError;
6-
use crate::executor::config::database::DatabaseConfig;
7-
use crate::executor::encoder::storage::StorageEncoder;
8-
use crate::executor::predule::{ExecuteResult, Executor};
9-
use crate::executor::result::{ExecuteColumn, ExecuteColumnType, ExecuteField, ExecuteRow};
12+
use crate::errors::predule::ExecuteError;
1013

11-
impl Executor {
14+
impl DBEngine {
1215
pub async fn create_database(
1316
&self,
1417
query: CreateDatabaseQuery,
@@ -55,7 +58,7 @@ impl Executor {
5558
if let Err(error) = tokio::fs::create_dir(&tables_path).await {
5659
match error.kind() {
5760
ErrorKind::AlreadyExists => {
58-
return Err(ExecuteError::wrap("already exists tables"))
61+
return Err(ExecuteError::wrap("already exists tables"));
5962
}
6063
_ => {
6164
return Err(ExecuteError::wrap("tables create failed"));
@@ -65,7 +68,7 @@ impl Executor {
6568

6669
// 각 데이터베이스 단위 설정파일 생성
6770
let config_path = database_path.clone().join("database.config");
68-
let database_info = DatabaseConfig {
71+
let database_info = DatabaseSchema {
6972
database_name: database_name.clone(),
7073
};
7174

src/executor/implements/ddl/create_table.rs renamed to src/engine/actions/ddl/create_table.rs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
use std::io::ErrorKind;
22

3-
use crate::ast::ddl::create_table::CreateTableQuery;
4-
use crate::errors::predule::ExecuteError;
3+
use crate::engine::DBEngine;
4+
use crate::engine::ast::ddl::create_table::CreateTableQuery;
5+
use crate::engine::encoder::schema_encoder::StorageEncoder;
6+
use crate::engine::schema::table::TableSchema;
7+
use crate::engine::types::{
8+
ExecuteColumn, ExecuteColumnType, ExecuteField, ExecuteResult, ExecuteRow,
9+
};
510
use crate::errors::RRDBError;
6-
use crate::executor::config::table::TableConfig;
7-
use crate::executor::encoder::storage::StorageEncoder;
8-
use crate::executor::predule::{ExecuteResult, Executor};
9-
use crate::executor::result::{ExecuteColumn, ExecuteColumnType, ExecuteField, ExecuteRow};
11+
use crate::errors::predule::ExecuteError;
1012

11-
impl Executor {
13+
impl DBEngine {
1214
pub async fn create_table(&self, query: CreateTableQuery) -> Result<ExecuteResult, RRDBError> {
1315
let encoder = StorageEncoder::new();
1416

@@ -31,7 +33,7 @@ impl Executor {
3133

3234
// 각 데이터베이스 단위 설정파일 생성
3335
let config_path = table_path.clone().join("table.config");
34-
let table_info: TableConfig = query.into();
36+
let table_info: TableSchema = query.into();
3537

3638
if let Err(error) = tokio::fs::write(&config_path, encoder.encode(table_info)).await {
3739
return Err(ExecuteError::wrap(error.to_string()));

src/executor/implements/ddl/drop_database.rs renamed to src/engine/actions/ddl/drop_database.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
use std::io::ErrorKind;
22

3-
use crate::ast::ddl::drop_database::DropDatabaseQuery;
4-
use crate::errors::predule::ExecuteError;
3+
use crate::engine::DBEngine;
4+
5+
use crate::engine::ast::ddl::drop_database::DropDatabaseQuery;
6+
use crate::engine::types::{
7+
ExecuteColumn, ExecuteColumnType, ExecuteField, ExecuteResult, ExecuteRow,
8+
};
59
use crate::errors::RRDBError;
6-
use crate::executor::predule::{ExecuteResult, Executor};
7-
use crate::executor::result::{ExecuteColumn, ExecuteColumnType, ExecuteField, ExecuteRow};
10+
use crate::errors::predule::ExecuteError;
811

9-
impl Executor {
12+
impl DBEngine {
1013
pub async fn drop_database(
1114
&self,
1215
query: DropDatabaseQuery,

0 commit comments

Comments
 (0)