pub struct NoteFilter {
pub kind: Option<String>,
pub property_filters: Vec<PropertyFilter>,
pub order_by: Option<(String, SortDir)>,
pub order_by_instant: bool,
pub unordered: bool,
pub namespaces: Vec<String>,
pub min_created_at: Option<i64>,
pub min_updated_at: Option<i64>,
pub tags: Vec<String>,
pub tag_mode: NoteTagMode,
pub after: Option<NoteSeekAfter>,
pub after_instant: Option<NoteInstantSeekAfter>,
}Expand description
Filter + sort options for NoteStore::query_notes_filtered.
Designed for general property-based filtering on any JSON field, not schedule-specific, so D9 and future packs can reuse the same API.
Fields§
§kind: Option<String>§property_filters: Vec<PropertyFilter>§order_by: Option<(String, SortDir)>(json_path, direction) — None defaults to created_at DESC.
order_by_instant: boolInterpret order_by’s text property as an RFC 3339 UTC instant before
sorting. Only ascending order is currently supported.
unordered: boolWhen true, omit the SQL ordering clause from count-free pages. The caller is responsible for ordering the bounded result set.
namespaces: Vec<String>When non-empty, restricts results to any of these namespaces using
namespace IN (...). Takes precedence over the namespace string
parameter passed to query_notes_filtered. When empty the
caller-supplied namespace parameter is used (backward-compatible).
min_created_at: Option<i64>Restrict to notes where created_at >= min_created_at (microseconds epoch).
None applies no lower-bound constraint.
min_updated_at: Option<i64>§tag_mode: NoteTagMode§after: Option<NoteSeekAfter>Restrict results to rows strictly after this boundary in the default
created_at DESC, id ASC order, for keyset (seek) pagination that
avoids re-walking earlier pages the way PageRequest.offset does.
Requires order_by to be None.
Honoured only by NoteStore::query_notes_filtered_count_free, which
seeks directly to the boundary and returns total: None.
NoteStore::query_notes_filtered rejects a non-None value with
StorageError::InvalidInput: it computes an exact COUNT(*) total
over the whole matching set, which has no defined meaning paired with
a seek boundary.
after_instant: Option<NoteInstantSeekAfter>Seek after a row in the order_by_instant total order. Honoured only
by query_notes_filtered_count_free with offset: 0.