#[derive(Debug, Clone, PartialEq)]
pub enum Ast {
And(Vec<Ast>),
Or(Vec<Ast>),
Constraint(Constraint),
}
#[derive(Debug, Clone, PartialEq)]
pub struct Constraint {
pub field: String,
pub operator: Operator,
pub value: Value,
}
#[derive(Debug, Clone, PartialEq)]
pub enum Operator {
Eq,
Neq,
Lt,
Lte,
Gt,
Gte,
In,
Out,
Like,
Ilike,
Between,
Null,
NotNull,
}
#[derive(Debug, Clone, PartialEq)]
pub enum Value {
Null,
Bool(bool),
Int(i64),
Float(f64),
String(String),
Date(String),
DateTime(String),
List(Vec<Value>),
}