pub enum FilterOp {
Eq,
EqOrMissing,
Ne,
Lt,
Lte,
Gt,
Gte,
JsonTypeEq,
JsonTypeNeMissing,
In(Vec<SqlValue>),
NotInOrMissing(Vec<SqlValue>),
}Expand description
Comparison operator for a PropertyFilter on a JSON path.
Variants§
Eq
EqOrMissing
Matches rows where the JSON field equals the value OR the field is absent/NULL.
Used for properties that may be missing in legacy rows (e.g. $.read).
Ne
Lt
Lte
Gt
Gte
JsonTypeEq
Matches rows where json_type(properties, path) = value.
Value must be a SQLite json_type string literal: ‘true’, ‘false’, ‘integer’,
‘real’, ‘text’, ‘array’, ‘object’, or ‘null’.
JsonTypeNeMissing
Matches rows where the json_type is absent (NULL) OR differs from value.
Equivalent to json_type IS NULL OR json_type != value.
Used for unread filter: matches any $.read that is NOT the JSON boolean true.
In(Vec<SqlValue>)
Matches rows where json_extract(properties, path) equals any value in
the set. A row with a missing/NULL property does not match — use
NotInOrMissing with the complementary set when “absent” should count
as included. PropertyFilter.value is unused for this op; the set
lives in the variant itself.
NotInOrMissing(Vec<SqlValue>)
Matches rows where the property is missing/NULL OR its value is not in
the set. Used for “exclude a small closed set of terminal values, but
treat a still-unset property as included” (e.g. GTD default task
listing excludes done/cancelled while a task with no status yet
still counts as inbox, i.e. included). PropertyFilter.value is
unused for this op; the set lives in the variant itself.