pub enum BoolExpr {
Comparison {
left: Operand,
op: CmpOp,
right: Operand,
},
And(Box<BoolExpr>, Box<BoolExpr>),
Or(Box<BoolExpr>, Box<BoolExpr>),
Not(Box<BoolExpr>),
In {
field: String,
values: Vec<Operand>,
},
Paren(Box<BoolExpr>),
}Expand description
A parsed boolean expression node.
Variants§
Comparison
A comparison (e.g. age > 18).
Fields
And(Box<BoolExpr>, Box<BoolExpr>)
Logical AND (e.g. a AND b).
Or(Box<BoolExpr>, Box<BoolExpr>)
Logical OR (e.g. a OR b).
Not(Box<BoolExpr>)
Logical NOT (e.g. NOT a).
In
IN list (e.g. status IN [ACTIVE, PENDING]).
Paren(Box<BoolExpr>)
Parenthesised sub-expression.
Implementations§
Source§impl BoolExpr
impl BoolExpr
Sourcepub fn field_references(&self) -> Vec<&str>
pub fn field_references(&self) -> Vec<&str>
Collect all field references in this expression.
Sourcepub fn enum_in_lists(&self) -> Vec<(&str, Vec<&str>)>
pub fn enum_in_lists(&self) -> Vec<(&str, Vec<&str>)>
Collect (field_name, [variant_names]) pairs from IN nodes where values
are enum variants. Used by the validator for enum checking.
Trait Implementations§
impl StructuralPartialEq for BoolExpr
Auto Trait Implementations§
impl Freeze for BoolExpr
impl RefUnwindSafe for BoolExpr
impl Send for BoolExpr
impl Sync for BoolExpr
impl Unpin for BoolExpr
impl UnsafeUnpin for BoolExpr
impl UnwindSafe for BoolExpr
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more