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 crate::nodes::Expression; #[derive(Clone, Debug, PartialEq, Eq)] pub enum TableEntry { Field(String, Expression), Index(Expression, Expression), Value(Expression), } #[derive(Clone, Debug, PartialEq, Eq)] pub struct TableExpression { entries: Vec<TableEntry>, } impl TableExpression { pub fn new(entries: Vec<TableEntry>) -> Self { Self { entries, } } #[inline] pub fn get_entries(&self) -> &Vec<TableEntry> { &self.entries } #[inline] pub fn len(&self) -> usize { self.entries.len() } #[inline] pub fn mutate_entries(&mut self) -> &mut Vec<TableEntry> { &mut self.entries } } impl Default for TableExpression { fn default() -> Self { Self::new(Vec::new()) } }