add files
This commit is contained in:
commit
206ccb66ad
140 changed files with 367 additions and 0 deletions
31
squirrel-server/src/table/datatypes.rs
Normal file
31
squirrel-server/src/table/datatypes.rs
Normal 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"))}
|
||||
}
|
||||
}
|
||||
}
|
2
squirrel-server/src/table/mod.rs
Normal file
2
squirrel-server/src/table/mod.rs
Normal file
|
@ -0,0 +1,2 @@
|
|||
pub mod table;
|
||||
pub mod datatypes;
|
12
squirrel-server/src/table/table.rs
Normal file
12
squirrel-server/src/table/table.rs
Normal 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>,
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue