1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
use super::*; #[derive(Debug, PartialEq)] pub struct Expression { keyword: grammar::Keyword, keyword_data: Vec<String>, } impl Expression { pub fn new(keyword: String, data: Vec<String>) -> Expression { Expression { keyword: grammar::unwrap_string(keyword), keyword_data: data, } } pub fn get_keyword_value_for_expression(&self) -> i32 { self.keyword.value_for_command() } pub fn get_size_of_keyword_data(&self) -> i32 { self.keyword_data.len() as i32 } pub fn parse_expression(&self) {} pub fn merge_expressions(&self, _expression_merge: Expression) -> Expression { Expression::new(String::from("test"), vec![]) } } #[cfg(test)] mod tests { use super::*; #[test] fn correct_data_length() { let data: Vec<String> = vec![ String::from("testing"), String::from("Testing"), String::from("Tetign"), ]; let exp = expression::Expression::new(String::from("SELECT"), data.clone()); assert_eq!(data.len() as i32, exp.get_size_of_keyword_data()); } }