1#[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}