Make TableSchema struct fields private

This commit is contained in:
Yuriy Dupyn 2024-01-08 13:56:38 +01:00
parent 966c9bf284
commit f0d29eb399
3 changed files with 53 additions and 41 deletions

View file

@ -1,6 +1,6 @@
use crate::error::Error;
use crate::internals::row::{ColumnPosition, Row};
use crate::internals::schema::{ColumnName, TableName, TableSchema};
use crate::internals::schema::{TableName, TableSchema};
use crate::internals::table::Table;
use crate::operation::{ColumnSelection, Condition, Operation};
use crate::result::DbResult;
@ -154,25 +154,23 @@ mod tests {
let name: ColumnPosition = 1;
let age: ColumnPosition = 2;
TableSchema {
table_name: "users".to_string(),
primary_key: id,
column_name_position_mapping: {
let mut mapping: BiMap<ColumnName, ColumnPosition> = BiMap::new();
mapping.insert("id".to_string(), id);
mapping.insert("name".to_string(), name);
mapping.insert("age".to_string(), age);
mapping
},
types: vec![DbType::Uuid, DbType::String, DbType::Int],
}
TableSchema::new(
"users".to_string(),
id,
vec!(
("id".to_string(), id),
("name".to_string(), name),
("age".to_string(), age),
),
vec![DbType::Uuid, DbType::String, DbType::Int],
)
}
#[test]
fn test_table_creation() {
let mut state = State::new();
let users_schema = users_schema();
let users = users_schema.table_name.clone();
let users = users_schema.table_name().clone();
state
.interpret(Operation::CreateTable(users.clone(), users_schema))
@ -182,14 +180,14 @@ mod tests {
let table = &state.tables[0];
assert!(table.rows().len() == 0);
assert!(table.schema().table_name == users);
assert!(table.table_name() == &users);
}
#[test]
fn test_select_empty() {
let mut state = State::new();
let users_schema = users_schema();
let users = users_schema.table_name.clone();
let users = users_schema.table_name().clone();
state
.interpret(Operation::CreateTable(users.clone(), users_schema))
@ -223,7 +221,7 @@ mod tests {
let mut state = State::new();
let users_schema = users_schema();
let users = users_schema.table_name.clone();
let users = users_schema.table_name().clone();
state
.interpret(Operation::CreateTable(users.clone(), users_schema))
@ -272,7 +270,7 @@ mod tests {
let mut state = State::new();
let users_schema = users_schema();
let users = users_schema.table_name.clone();
let users = users_schema.table_name().clone();
state
.interpret(CreateTable(users.clone(), users_schema))
@ -384,7 +382,7 @@ mod tests {
let mut state = State::new();
let users_schema = users_schema();
let users = users_schema.table_name.clone();
let users = users_schema.table_name().clone();
state
.interpret(CreateTable(users.clone(), users_schema))
@ -453,7 +451,7 @@ mod tests {
let mut state = State::new();
let users_schema = users_schema();
let users = users_schema.table_name.clone();
let users = users_schema.table_name().clone();
state
.interpret(CreateTable(users.clone(), users_schema))
@ -521,25 +519,23 @@ pub fn example() {
use Operation::*;
use Value::*;
let users_schema = {
let users_schema: TableSchema = {
let id: ColumnPosition = 0;
let name: ColumnPosition = 1;
let age: ColumnPosition = 2;
TableSchema {
table_name: "users".to_string(),
primary_key: id,
column_name_position_mapping: {
let mut mapping: BiMap<ColumnName, ColumnPosition> = BiMap::new();
mapping.insert("id".to_string(), id);
mapping.insert("name".to_string(), name);
mapping.insert("age".to_string(), age);
mapping
},
types: vec![DbType::Uuid, DbType::String, DbType::Int],
}
TableSchema::new(
"users".to_string(),
id,
vec!(
("id".to_string(), id),
("name".to_string(), name),
("age".to_string(), age),
),
vec![DbType::Uuid, DbType::String, DbType::Int],
)
};
let users = users_schema.table_name.clone();
let users = users_schema.table_name().clone();
let mut state = State::new();
state