Skip to main content

rest_sql/
ast.rs

1/// Raw AST — unvalidated, produced directly by the parser.
2#[derive(Debug, Clone, PartialEq)]
3pub enum Ast {
4    And(Vec<Ast>),
5    Or(Vec<Ast>),
6    Constraint(Constraint),
7}
8
9#[derive(Debug, Clone, PartialEq)]
10pub struct Constraint {
11    pub field: String,
12    pub operator: Operator,
13    pub value: Value,
14}
15
16#[derive(Debug, Clone, PartialEq)]
17pub enum Operator {
18    Eq,
19    Neq,
20    Lt,
21    Lte,
22    Gt,
23    Gte,
24    In,
25    Out,
26    Like,
27    Ilike,
28    Between,
29    Null,
30    NotNull,
31}
32
33#[derive(Debug, Clone, PartialEq)]
34pub enum Value {
35    Null,
36    Bool(bool),
37    Int(i64),
38    Float(f64),
39    String(String),
40    Date(String),
41    DateTime(String),
42    List(Vec<Value>),
43}