pub enum Predicate {
Show 18 variants
Eq {
left: Expr,
right: Expr,
},
Neq {
left: Expr,
right: Expr,
},
Gt {
left: Expr,
right: Expr,
},
Gte {
left: Expr,
right: Expr,
},
Lt {
left: Expr,
right: Expr,
},
Lte {
left: Expr,
right: Expr,
},
Between {
value: Expr,
min: Expr,
max: Expr,
},
HasKey {
property: String,
},
IsNull {
property: String,
},
IsNotNull {
property: String,
},
StartsWith {
value: Expr,
prefix: Expr,
},
EndsWith {
value: Expr,
suffix: Expr,
},
Contains {
value: Expr,
substring: Expr,
},
IsIn {
value: Expr,
values: Expr,
},
And {
predicates: Vec<Predicate>,
},
Or {
predicates: Vec<Predicate>,
},
Not {
predicate: Box<Predicate>,
},
Compare {
left: Expr,
op: CompareOp,
right: Expr,
},
}Expand description
Predicate expression.
Variants§
Eq
Equality comparison.
Neq
Inequality comparison.
Gt
Greater-than comparison.
Gte
Greater-than-or-equal comparison.
Lt
Less-than comparison.
Lte
Less-than-or-equal comparison.
Between
Inclusive range comparison.
HasKey
Property exists.
IsNull
Property is null or missing.
IsNotNull
Property exists and is not null.
StartsWith
String starts with prefix.
EndsWith
String ends with suffix.
Contains
String contains substring.
IsIn
Value is in a list.
And
Logical AND.
Or
Logical OR.
Not
Logical NOT.
Compare
Explicit expression comparison.
Implementations§
Source§impl Predicate
impl Predicate
Sourcepub fn eq(
property: impl Into<String>,
value: impl Into<PropertyInput>,
) -> Predicate
pub fn eq( property: impl Into<String>, value: impl Into<PropertyInput>, ) -> Predicate
Create an equality predicate.
Sourcepub fn neq(
property: impl Into<String>,
value: impl Into<PropertyInput>,
) -> Predicate
pub fn neq( property: impl Into<String>, value: impl Into<PropertyInput>, ) -> Predicate
Create a not-equals predicate.
Sourcepub fn gt(
property: impl Into<String>,
value: impl Into<PropertyInput>,
) -> Predicate
pub fn gt( property: impl Into<String>, value: impl Into<PropertyInput>, ) -> Predicate
Create a greater-than predicate.
Sourcepub fn gte(
property: impl Into<String>,
value: impl Into<PropertyInput>,
) -> Predicate
pub fn gte( property: impl Into<String>, value: impl Into<PropertyInput>, ) -> Predicate
Create a greater-than-or-equal predicate.
Sourcepub fn lt(
property: impl Into<String>,
value: impl Into<PropertyInput>,
) -> Predicate
pub fn lt( property: impl Into<String>, value: impl Into<PropertyInput>, ) -> Predicate
Create a less-than predicate.
Sourcepub fn lte(
property: impl Into<String>,
value: impl Into<PropertyInput>,
) -> Predicate
pub fn lte( property: impl Into<String>, value: impl Into<PropertyInput>, ) -> Predicate
Create a less-than-or-equal predicate.
Sourcepub fn between(
property: impl Into<String>,
min: impl Into<PropertyInput>,
max: impl Into<PropertyInput>,
) -> Predicate
pub fn between( property: impl Into<String>, min: impl Into<PropertyInput>, max: impl Into<PropertyInput>, ) -> Predicate
Create a between predicate.
Sourcepub fn is_not_null(property: impl Into<String>) -> Predicate
pub fn is_not_null(property: impl Into<String>) -> Predicate
Create an is-not-null predicate.
Sourcepub fn starts_with(
property: impl Into<String>,
prefix: impl Into<String>,
) -> Predicate
pub fn starts_with( property: impl Into<String>, prefix: impl Into<String>, ) -> Predicate
Create a starts-with predicate.
Sourcepub fn ends_with(
property: impl Into<String>,
suffix: impl Into<String>,
) -> Predicate
pub fn ends_with( property: impl Into<String>, suffix: impl Into<String>, ) -> Predicate
Create an ends-with predicate.
Sourcepub fn contains(
property: impl Into<String>,
substring: impl Into<String>,
) -> Predicate
pub fn contains( property: impl Into<String>, substring: impl Into<String>, ) -> Predicate
Create a contains predicate.
Sourcepub fn contains_param(
property: impl Into<String>,
param_name: impl Into<String>,
) -> Predicate
pub fn contains_param( property: impl Into<String>, param_name: impl Into<String>, ) -> Predicate
Create a parameterized contains predicate.
Sourcepub fn is_in(
property: impl Into<String>,
values: impl Into<PropertyValue>,
) -> Predicate
pub fn is_in( property: impl Into<String>, values: impl Into<PropertyValue>, ) -> Predicate
Create an IN predicate.
Sourcepub fn is_in_expr(property: impl Into<String>, values: Expr) -> Predicate
pub fn is_in_expr(property: impl Into<String>, values: Expr) -> Predicate
Create an IN predicate from an expression.
Sourcepub fn is_in_param(
property: impl Into<String>,
param_name: impl Into<String>,
) -> Predicate
pub fn is_in_param( property: impl Into<String>, param_name: impl Into<String>, ) -> Predicate
Create a parameterized IN predicate.
Sourcepub fn compare(left: Expr, op: CompareOp, right: Expr) -> Predicate
pub fn compare(left: Expr, op: CompareOp, right: Expr) -> Predicate
Create an expression comparison predicate.
Sourcepub fn eq_param(
property: impl Into<String>,
param_name: impl Into<String>,
) -> Predicate
pub fn eq_param( property: impl Into<String>, param_name: impl Into<String>, ) -> Predicate
Create a parameterized equality predicate.
Sourcepub fn neq_param(
property: impl Into<String>,
param_name: impl Into<String>,
) -> Predicate
pub fn neq_param( property: impl Into<String>, param_name: impl Into<String>, ) -> Predicate
Create a parameterized not-equals predicate.
Sourcepub fn gt_param(
property: impl Into<String>,
param_name: impl Into<String>,
) -> Predicate
pub fn gt_param( property: impl Into<String>, param_name: impl Into<String>, ) -> Predicate
Create a parameterized greater-than predicate.
Sourcepub fn gte_param(
property: impl Into<String>,
param_name: impl Into<String>,
) -> Predicate
pub fn gte_param( property: impl Into<String>, param_name: impl Into<String>, ) -> Predicate
Create a parameterized greater-than-or-equal predicate.