add files

This commit is contained in:
Nicholas Orlowsky 2023-08-02 23:14:46 -05:00 committed by Nicholas Orlowsky
commit 206ccb66ad
140 changed files with 367 additions and 0 deletions

View file

@ -0,0 +1,31 @@
pub enum Datatype {
Integer,
CharacterVarying,
}
impl Datatype {
pub fn as_str(&self) -> &'static str {
match self {
Datatype::CharacterVarying => "varchar",
Datatype::Integer => "integer"
}
}
pub fn has_len(&self) -> bool {
match self {
Datatype::CharacterVarying => true,
Datatype::Integer => false
}
}
pub fn from_str(string: &str) -> Result<Datatype, String> {
match string {
"varchar" => return Ok(Datatype::CharacterVarying),
"character varying" => return Ok(Datatype::CharacterVarying),
"integer" => return Ok(Datatype::Integer),
"int" => return Ok(Datatype::Integer),
"int4" => return Ok(Datatype::Integer),
_ => {return Err(String::from("Undefined data type"))}
}
}
}

View file

@ -0,0 +1,2 @@
pub mod table;
pub mod datatypes;

View file

@ -0,0 +1,12 @@
use crate::Datatype;
pub struct Column {
pub name: String,
pub data_type: Datatype,
pub length: u16 // used for char(n), varchar(n)
}
pub struct TableDefinition {
pub name: String,
pub column_defs: Vec<Column>,
}