pub enum FilterExpr {
Filter(Filter),
All(Vec<FilterExpr>),
Any(Vec<FilterExpr>),
Not(Box<FilterExpr>),
Relation(RelationFilter),
Coalesce(CoalesceFilter),
Json(JsonFilter),
VectorDistance(VectorDistanceFilter),
}Variants§
Filter(Filter)
All(Vec<FilterExpr>)
Any(Vec<FilterExpr>)
Not(Box<FilterExpr>)
Relation(RelationFilter)
Coalesce(CoalesceFilter)
COALESCE(col_a, col_b, ...) op value — built via
super::coalesce::coalesce.
Json(JsonFilter)
JSON / JSONB column predicates — see JsonFilter. Built via
FieldRef::json_has_key(...) and
FieldRef::json_get_text(...).<cmp>(...).
VectorDistance(VectorDistanceFilter)
Vector(n) distance-to-a-query-vector threshold predicates (see
docs/design/extensions.md §6/§7, cratestack#163) — see
VectorDistanceFilter. Built via
FieldRef::distance_to(...).lt(...)/.lte(...)/etc. PG-only
(pgvector); the embedded rusqlite backend fails loud at render
time, mirroring [Self::Spatial].
Implementations§
Source§impl FilterExpr
impl FilterExpr
pub fn all(filters: impl IntoIterator<Item = FilterExpr>) -> Self
pub fn any(filters: impl IntoIterator<Item = FilterExpr>) -> Self
pub fn not(self) -> Self
pub fn and(self, other: impl Into<FilterExpr>) -> Self
pub fn or(self, other: impl Into<FilterExpr>) -> Self
Source§impl FilterExpr
impl FilterExpr
Sourcepub fn relation(
parent_table: &'static str,
parent_column: &'static str,
related_table: &'static str,
related_column: &'static str,
filter: FilterExpr,
scope: RelatedReadScope,
) -> Self
pub fn relation( parent_table: &'static str, parent_column: &'static str, related_table: &'static str, related_column: &'static str, filter: FilterExpr, scope: RelatedReadScope, ) -> Self
To-one: the related row exists, is visible under scope, and
matches filter.
Sourcepub fn relation_some(
parent_table: &'static str,
parent_column: &'static str,
related_table: &'static str,
related_column: &'static str,
filter: FilterExpr,
scope: RelatedReadScope,
) -> Self
pub fn relation_some( parent_table: &'static str, parent_column: &'static str, related_table: &'static str, related_column: &'static str, filter: FilterExpr, scope: RelatedReadScope, ) -> Self
To-many some: at least one related row visible under scope
matches filter.
Sourcepub fn relation_every(
parent_table: &'static str,
parent_column: &'static str,
related_table: &'static str,
related_column: &'static str,
filter: FilterExpr,
scope: RelatedReadScope,
) -> Self
pub fn relation_every( parent_table: &'static str, parent_column: &'static str, related_table: &'static str, related_column: &'static str, filter: FilterExpr, scope: RelatedReadScope, ) -> Self
To-many every: no related row visible under scope fails
filter (vacuously true when none is visible).
Sourcepub fn relation_none(
parent_table: &'static str,
parent_column: &'static str,
related_table: &'static str,
related_column: &'static str,
filter: FilterExpr,
scope: RelatedReadScope,
) -> Self
pub fn relation_none( parent_table: &'static str, parent_column: &'static str, related_table: &'static str, related_column: &'static str, filter: FilterExpr, scope: RelatedReadScope, ) -> Self
To-many none: no related row visible under scope matches
filter.