pub enum FilterExpr {
Show 32 variants
True,
False,
And(Vec<FilterExpr>),
Or(Vec<FilterExpr>),
Not(Box<FilterExpr>),
Eq {
field: String,
value: Value,
},
EqCi {
field: String,
value: Value,
},
Ne {
field: String,
value: Value,
},
Lt {
field: String,
value: Value,
},
Lte {
field: String,
value: Value,
},
Gt {
field: String,
value: Value,
},
Gte {
field: String,
value: Value,
},
EqField {
left_field: String,
right_field: String,
},
NeField {
left_field: String,
right_field: String,
},
LtField {
left_field: String,
right_field: String,
},
LteField {
left_field: String,
right_field: String,
},
GtField {
left_field: String,
right_field: String,
},
GteField {
left_field: String,
right_field: String,
},
In {
field: String,
values: Vec<Value>,
},
NotIn {
field: String,
values: Vec<Value>,
},
Contains {
field: String,
value: Value,
},
TextContains {
field: String,
value: Value,
},
TextContainsCi {
field: String,
value: Value,
},
StartsWith {
field: String,
value: Value,
},
StartsWithCi {
field: String,
value: Value,
},
EndsWith {
field: String,
value: Value,
},
EndsWithCi {
field: String,
value: Value,
},
IsNull {
field: String,
},
IsNotNull {
field: String,
},
IsMissing {
field: String,
},
IsEmpty {
field: String,
},
IsNotEmpty {
field: String,
},
}Expand description
FilterExpr
Serialized, planner-agnostic filter language. This is the shared typed filter input model for fluent callers and lowers directly onto planner-owned boolean expressions at the intent boundary.
Variants§
True
False
And(Vec<FilterExpr>)
Or(Vec<FilterExpr>)
Not(Box<FilterExpr>)
Eq
EqCi
Ne
Lt
Lte
Gt
Gte
EqField
NeField
LtField
LteField
GtField
GteField
In
NotIn
Contains
TextContains
TextContainsCi
StartsWith
StartsWithCi
EndsWith
EndsWithCi
IsNull
IsNotNull
IsMissing
IsEmpty
IsNotEmpty
Implementations§
Source§impl FilterExpr
impl FilterExpr
Sourcepub const fn and(exprs: Vec<FilterExpr>) -> FilterExpr
pub const fn and(exprs: Vec<FilterExpr>) -> FilterExpr
Build an And expression from a list of child expressions.
Sourcepub const fn or(exprs: Vec<FilterExpr>) -> FilterExpr
pub const fn or(exprs: Vec<FilterExpr>) -> FilterExpr
Build an Or expression from a list of child expressions.
Sourcepub fn not(expr: FilterExpr) -> FilterExpr
pub fn not(expr: FilterExpr) -> FilterExpr
Negate one child expression.
Sourcepub fn eq(field: impl Into<String>, value: impl FieldValue) -> FilterExpr
pub fn eq(field: impl Into<String>, value: impl FieldValue) -> FilterExpr
Compare field == value.
Sourcepub fn ne(field: impl Into<String>, value: impl FieldValue) -> FilterExpr
pub fn ne(field: impl Into<String>, value: impl FieldValue) -> FilterExpr
Compare field != value.
Sourcepub fn lt(field: impl Into<String>, value: impl FieldValue) -> FilterExpr
pub fn lt(field: impl Into<String>, value: impl FieldValue) -> FilterExpr
Compare field < value.
Sourcepub fn lte(field: impl Into<String>, value: impl FieldValue) -> FilterExpr
pub fn lte(field: impl Into<String>, value: impl FieldValue) -> FilterExpr
Compare field <= value.
Sourcepub fn gt(field: impl Into<String>, value: impl FieldValue) -> FilterExpr
pub fn gt(field: impl Into<String>, value: impl FieldValue) -> FilterExpr
Compare field > value.
Sourcepub fn gte(field: impl Into<String>, value: impl FieldValue) -> FilterExpr
pub fn gte(field: impl Into<String>, value: impl FieldValue) -> FilterExpr
Compare field >= value.
Sourcepub fn eq_ci(field: impl Into<String>, value: impl FieldValue) -> FilterExpr
pub fn eq_ci(field: impl Into<String>, value: impl FieldValue) -> FilterExpr
Compare field == value with casefolded text equality.
Sourcepub fn eq_field(
left_field: impl Into<String>,
right_field: impl Into<String>,
) -> FilterExpr
pub fn eq_field( left_field: impl Into<String>, right_field: impl Into<String>, ) -> FilterExpr
Compare left_field == right_field.
Sourcepub fn ne_field(
left_field: impl Into<String>,
right_field: impl Into<String>,
) -> FilterExpr
pub fn ne_field( left_field: impl Into<String>, right_field: impl Into<String>, ) -> FilterExpr
Compare left_field != right_field.
Sourcepub fn lt_field(
left_field: impl Into<String>,
right_field: impl Into<String>,
) -> FilterExpr
pub fn lt_field( left_field: impl Into<String>, right_field: impl Into<String>, ) -> FilterExpr
Compare left_field < right_field.
Sourcepub fn lte_field(
left_field: impl Into<String>,
right_field: impl Into<String>,
) -> FilterExpr
pub fn lte_field( left_field: impl Into<String>, right_field: impl Into<String>, ) -> FilterExpr
Compare left_field <= right_field.
Sourcepub fn gt_field(
left_field: impl Into<String>,
right_field: impl Into<String>,
) -> FilterExpr
pub fn gt_field( left_field: impl Into<String>, right_field: impl Into<String>, ) -> FilterExpr
Compare left_field > right_field.
Sourcepub fn gte_field(
left_field: impl Into<String>,
right_field: impl Into<String>,
) -> FilterExpr
pub fn gte_field( left_field: impl Into<String>, right_field: impl Into<String>, ) -> FilterExpr
Compare left_field >= right_field.
Sourcepub fn in_list(
field: impl Into<String>,
values: impl IntoIterator<Item = impl FieldValue>,
) -> FilterExpr
pub fn in_list( field: impl Into<String>, values: impl IntoIterator<Item = impl FieldValue>, ) -> FilterExpr
Compare field IN values.
Sourcepub fn not_in(
field: impl Into<String>,
values: impl IntoIterator<Item = impl FieldValue>,
) -> FilterExpr
pub fn not_in( field: impl Into<String>, values: impl IntoIterator<Item = impl FieldValue>, ) -> FilterExpr
Compare field NOT IN values.
Sourcepub fn contains(field: impl Into<String>, value: impl FieldValue) -> FilterExpr
pub fn contains(field: impl Into<String>, value: impl FieldValue) -> FilterExpr
Compare collection field CONTAINS value.
Sourcepub fn text_contains(
field: impl Into<String>,
value: impl FieldValue,
) -> FilterExpr
pub fn text_contains( field: impl Into<String>, value: impl FieldValue, ) -> FilterExpr
Compare case-sensitive substring containment.
Sourcepub fn text_contains_ci(
field: impl Into<String>,
value: impl FieldValue,
) -> FilterExpr
pub fn text_contains_ci( field: impl Into<String>, value: impl FieldValue, ) -> FilterExpr
Compare case-insensitive substring containment.
Sourcepub fn starts_with(
field: impl Into<String>,
value: impl FieldValue,
) -> FilterExpr
pub fn starts_with( field: impl Into<String>, value: impl FieldValue, ) -> FilterExpr
Compare case-sensitive prefix match.
Sourcepub fn starts_with_ci(
field: impl Into<String>,
value: impl FieldValue,
) -> FilterExpr
pub fn starts_with_ci( field: impl Into<String>, value: impl FieldValue, ) -> FilterExpr
Compare case-insensitive prefix match.
Sourcepub fn ends_with(field: impl Into<String>, value: impl FieldValue) -> FilterExpr
pub fn ends_with(field: impl Into<String>, value: impl FieldValue) -> FilterExpr
Compare case-sensitive suffix match.
Sourcepub fn ends_with_ci(
field: impl Into<String>,
value: impl FieldValue,
) -> FilterExpr
pub fn ends_with_ci( field: impl Into<String>, value: impl FieldValue, ) -> FilterExpr
Compare case-insensitive suffix match.
Sourcepub fn is_null(field: impl Into<String>) -> FilterExpr
pub fn is_null(field: impl Into<String>) -> FilterExpr
Match rows where field is present and null.
Sourcepub fn is_not_null(field: impl Into<String>) -> FilterExpr
pub fn is_not_null(field: impl Into<String>) -> FilterExpr
Match rows where field is present and non-null.
Sourcepub fn is_missing(field: impl Into<String>) -> FilterExpr
pub fn is_missing(field: impl Into<String>) -> FilterExpr
Match rows where field is absent.
Sourcepub fn is_empty(field: impl Into<String>) -> FilterExpr
pub fn is_empty(field: impl Into<String>) -> FilterExpr
Match rows where field is present and empty.
Sourcepub fn is_not_empty(field: impl Into<String>) -> FilterExpr
pub fn is_not_empty(field: impl Into<String>) -> FilterExpr
Match rows where field is present and non-empty.
Trait Implementations§
Source§impl CandidType for FilterExpr
impl CandidType for FilterExpr
Source§impl Clone for FilterExpr
impl Clone for FilterExpr
Source§fn clone(&self) -> FilterExpr
fn clone(&self) -> FilterExpr
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more