fix all linter issues

This commit is contained in:
Nicholas Orlowsky 2023-08-08 15:56:41 -05:00 committed by Nicholas Orlowsky
parent 91193cf03e
commit 7f85e2debf
5 changed files with 89 additions and 118 deletions

View file

@ -1,3 +1,5 @@
use anyhow::anyhow;
#[derive(Debug, Eq, PartialEq)]
pub enum Datatype {
Integer,
@ -54,14 +56,15 @@ impl Datatype {
}
}
}
pub fn from_str(string: &str) -> Result<Datatype, String> {
pub fn parse_from_str(string: &str) -> ::anyhow::Result<Datatype> {
match string {
"varchar" => return Ok(Datatype::CharacterVarying),
"character varying" => return Ok(Datatype::CharacterVarying),
"integer" => return Ok(Datatype::Integer),
"int" => return Ok(Datatype::Integer),
"int8" => return Ok(Datatype::Integer),
_ => return Err(String::from("Undefined data type")),
"varchar" => Ok(Datatype::CharacterVarying),
"character varying" => Ok(Datatype::CharacterVarying),
"integer" => Ok(Datatype::Integer),
"int" => Ok(Datatype::Integer),
"int8" => Ok(Datatype::Integer),
_ => Err(anyhow!("Undefined data type")),
}
}
}

View file

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

View file

@ -1,31 +0,0 @@
use crate::Datatype;
#[derive(Debug, Eq, PartialEq)]
pub struct ColumnDefinition {
pub name: String,
pub data_type: Datatype,
pub length: usize, // used for char(n), varchar(n)
}
#[derive(Debug, Eq, PartialEq)]
pub struct TableDefinition {
pub name: String,
pub column_defs: Vec<ColumnDefinition>,
}
impl TableDefinition {
pub fn get_byte_size(&self) -> usize {
let mut sum: usize = 0;
for col_def in self.column_defs.iter() {
// TODO HACK FIXME
// We should keep track of length
// even for built-in datatypes.
sum += if col_def.length > 0 {
col_def.length
} else {
1
};
}
sum
}
}