diff --git a/src/query_builders/column_sql_serializer.rs b/src/query_builders/column_sql_serializer.rs index 341a2bb..4432d48 100644 --- a/src/query_builders/column_sql_serializer.rs +++ b/src/query_builders/column_sql_serializer.rs @@ -46,8 +46,7 @@ impl ColumnSqlSerializer { query += "PRIMARY KEY "; } - query.push(','); - Ok(query) + Ok(query.trim_end().to_string()) } } @@ -70,7 +69,7 @@ mod tests { let serializer = ColumnSqlSerializer{}; let result = serializer.serialize(column).unwrap(); - assert_eq!(result, "id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY ,".to_string()); + assert_eq!(result, "id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY".to_string()); } #[test] @@ -85,7 +84,7 @@ mod tests { let serializer = ColumnSqlSerializer{}; let result = serializer.serialize(column).unwrap(); - assert_eq!(result, "name TEXT NOT NULL DEFAULT 'None' ,".to_string()); + assert_eq!(result, "name TEXT NOT NULL DEFAULT 'None'".to_string()); } #[test] @@ -100,6 +99,6 @@ mod tests { let serializer = ColumnSqlSerializer {}; let result = serializer.serialize(column).unwrap(); - assert_eq!(result, "age INTEGER NOT NULL DEFAULT 18 ,".to_string()); + assert_eq!(result, "age INTEGER NOT NULL DEFAULT 18".to_string()); } } diff --git a/src/query_builders/table_sql_serializer.rs b/src/query_builders/table_sql_serializer.rs index be093ed..c59cf3d 100644 --- a/src/query_builders/table_sql_serializer.rs +++ b/src/query_builders/table_sql_serializer.rs @@ -6,16 +6,13 @@ pub struct TableSqlSerializer {} impl TableSqlSerializer { pub fn serialize(self, table: Table) -> String { - let mut query = String::from("CREATE TABLE "); - query += &format!("{} (\n", table.name); - let column_serializer = ColumnSqlSerializer{}; - for column in table.columns { - query += &column_serializer.serialize(column).unwrap(); - } - - query += ");"; - query + let columns_sql: Vec = table.columns + .into_iter() + .map(|c| column_serializer.serialize(c).unwrap()) + .collect(); + + format!("CREATE TABLE {} ({});", table.name, columns_sql.join(", ")) } } @@ -43,6 +40,6 @@ mod test { let result = serializer.serialize(table); - assert_eq!(result, "CREATE TABLE test (\nid INTEGER NOT NULL AUTO_INCREMENT ,);".to_string()); + assert_eq!(result, "CREATE TABLE test (id INTEGER NOT NULL AUTO_INCREMENT);".to_string()); } }