pub enum Filter {
Predicate(Predicate),
And(Vec<Filter>),
Or(Vec<Filter>),
Not(Box<Filter>),
}Expand description
Composite filter with logical operations
Variants§
Predicate(Predicate)
Single predicate
And(Vec<Filter>)
Logical AND of filters
Or(Vec<Filter>)
Logical OR of filters
Not(Box<Filter>)
Logical NOT of filter
Implementations§
Source§impl Filter
impl Filter
Sourcepub fn from_predicate(predicate: Predicate) -> Self
pub fn from_predicate(predicate: Predicate) -> Self
Create filter from predicate
Sourcepub fn between(column: impl Into<String>, low: Value, high: Value) -> Self
pub fn between(column: impl Into<String>, low: Value, high: Value) -> Self
Create between filter
Sourcepub fn is_not_null(column: impl Into<String>) -> Self
pub fn is_not_null(column: impl Into<String>) -> Self
Create IS NOT NULL filter
Sourcepub fn and_filter(self, other: Filter) -> Self
pub fn and_filter(self, other: Filter) -> Self
Combine with another filter using AND
Sourcepub fn evaluate(&self, get_value: &impl Fn(&str) -> Option<Value>) -> bool
pub fn evaluate(&self, get_value: &impl Fn(&str) -> Option<Value>) -> bool
Evaluate filter against a row (column name -> value map)
Sourcepub fn references_column(&self, column: &str) -> bool
pub fn references_column(&self, column: &str) -> bool
Check if filter references a specific column
Sourcepub fn referenced_columns(&self) -> Vec<&str>
pub fn referenced_columns(&self) -> Vec<&str>
Get all referenced columns
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Filter
impl RefUnwindSafe for Filter
impl Send for Filter
impl Sync for Filter
impl Unpin for Filter
impl UnsafeUnpin for Filter
impl UnwindSafe for Filter
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