From 430d092def13d827613ac3a6cbabb23a74c67984 Mon Sep 17 00:00:00 2001 From: Yuriy Dupyn <2153100+omedusyo@users.noreply.github.com> Date: Thu, 18 Jan 2024 19:25:46 +0100 Subject: [PATCH] Make interpreter a library --- minisql/src/error.rs | 2 +- minisql/src/internals/mod.rs | 1 - minisql/src/internals/table.rs | 2 +- minisql/src/interpreter.rs | 2 +- minisql/src/lib.rs | 7 +++++++ minisql/src/main.rs | 10 ---------- minisql/src/operation.rs | 2 +- minisql/src/{internals => }/schema.rs | 2 +- 8 files changed, 12 insertions(+), 16 deletions(-) create mode 100644 minisql/src/lib.rs delete mode 100644 minisql/src/main.rs rename minisql/src/{internals => }/schema.rs (97%) diff --git a/minisql/src/error.rs b/minisql/src/error.rs index 51ca0cf..6000c0e 100644 --- a/minisql/src/error.rs +++ b/minisql/src/error.rs @@ -1,5 +1,5 @@ use crate::internals::row::ColumnPosition; -use crate::internals::schema::{ColumnName, TableName}; +use crate::schema::{ColumnName, TableName}; use crate::operation::InsertionValues; use crate::type_system::{DbType, Uuid, Value}; diff --git a/minisql/src/internals/mod.rs b/minisql/src/internals/mod.rs index 864d9d7..f4723f3 100644 --- a/minisql/src/internals/mod.rs +++ b/minisql/src/internals/mod.rs @@ -1,4 +1,3 @@ pub mod column_index; pub mod row; -pub mod schema; pub mod table; diff --git a/minisql/src/internals/table.rs b/minisql/src/internals/table.rs index 36abf76..914d1ef 100644 --- a/minisql/src/internals/table.rs +++ b/minisql/src/internals/table.rs @@ -3,7 +3,7 @@ use std::collections::{BTreeMap, HashMap, HashSet}; use crate::error::Error; use crate::internals::column_index::ColumnIndex; use crate::internals::row::{ColumnPosition, Row}; -use crate::internals::schema::{ColumnName, TableSchema, TableName}; +use crate::schema::{ColumnName, TableSchema, TableName}; use crate::result::DbResult; use crate::type_system::{IndexableValue, Uuid, Value}; diff --git a/minisql/src/interpreter.rs b/minisql/src/interpreter.rs index 4bd3f35..7a3bad3 100644 --- a/minisql/src/interpreter.rs +++ b/minisql/src/interpreter.rs @@ -1,6 +1,6 @@ use crate::error::Error; use crate::internals::row::{ColumnPosition, Row}; -use crate::internals::schema::{TableName, TableSchema}; +use crate::schema::{TableName, TableSchema}; use crate::internals::table::Table; use crate::operation::{ColumnSelection, Condition, Operation}; use crate::result::DbResult; diff --git a/minisql/src/lib.rs b/minisql/src/lib.rs new file mode 100644 index 0000000..b8e95c3 --- /dev/null +++ b/minisql/src/lib.rs @@ -0,0 +1,7 @@ +pub mod schema; +pub mod interpreter; +pub mod operation; +pub mod type_system; +mod error; +mod internals; +mod result; diff --git a/minisql/src/main.rs b/minisql/src/main.rs deleted file mode 100644 index 9a4f292..0000000 --- a/minisql/src/main.rs +++ /dev/null @@ -1,10 +0,0 @@ -mod error; -mod internals; -mod interpreter; -mod operation; -mod result; -mod type_system; - -fn main() { - interpreter::example(); -} diff --git a/minisql/src/operation.rs b/minisql/src/operation.rs index a5fd0b7..3b060c9 100644 --- a/minisql/src/operation.rs +++ b/minisql/src/operation.rs @@ -1,4 +1,4 @@ -use crate::internals::schema::{ColumnName, TableName, TableSchema}; +use crate::schema::{ColumnName, TableName, TableSchema}; use crate::type_system::Value; // ==============SQL operations================ diff --git a/minisql/src/internals/schema.rs b/minisql/src/schema.rs similarity index 97% rename from minisql/src/internals/schema.rs rename to minisql/src/schema.rs index 4f2bf54..c9574ac 100644 --- a/minisql/src/internals/schema.rs +++ b/minisql/src/schema.rs @@ -20,7 +20,7 @@ pub type TableName = String; pub type ColumnName = String; impl TableSchema { - pub fn new(table_name: TableName, primary_key: ColumnPosition, column_name_position_map: Vec<(ColumnName, ColumnPosition)>, types: Vec) -> Self { + pub(crate) fn new(table_name: TableName, primary_key: ColumnPosition, column_name_position_map: Vec<(ColumnName, ColumnPosition)>, types: Vec) -> Self { let mut column_name_position_mapping: BiMap = BiMap::new(); for (column_name, column_position) in column_name_position_map { column_name_position_mapping.insert(column_name, column_position);