Skip to main content

Module filter

Module filter 

Source
Expand description

Query filter system inspired by Laravel Filter Query String

Provides a flexible, type-safe filtering system for database queries. Supports complex query expressions through URL-friendly parameters.

§Example Query String

?username[contain]=john&age[gt]=18&status[eq]=active&orderby=name&limit=10

§Supported Operators

OperatorDescriptionSQL Equivalent
eqEqualfield = value
notEqNot equalfield != value
gtGreater thanfield > value
gte / gtEqGreater or equalfield >= value
ltLess thanfield < value
lte / ltEqLess or equalfield <= value
likeCase-sensitive LIKEfield LIKE value
ilikeCase-insensitive LIKEfield ILIKE value
notlikeNOT LIKEfield NOT LIKE value
containContainsfield LIKE %value%
notcontainDoes not containfield NOT LIKE %value%
startwithStarts withfield LIKE value%
endwithEnds withfield LIKE %value
inIn arrayfield IN (...)
notinNot in arrayfield NOT IN (...)
betweenBetween two valuesfield BETWEEN a AND b
notbetweenNot betweenfield NOT BETWEEN a AND b
isnullIs nullfield IS NULL
isnotnullIs not nullfield IS NOT NULL
orOR conditionOR field = value

Re-exports§

pub use cursor::CursorPayload;
pub use cursor::CursorError;
pub use cursor::encode_cursor;
pub use cursor::decode_cursor;

Modules§

cursor
Keyset (cursor) paging for the generic list endpoint.

Structs§

FilterCondition
A single filter condition
QueryFilter
Complete query filter specification
SortSpec
Sort specification

Enums§

FilterLogical
Logical operator for combining conditions
FilterOperator
Filter operator types
FilterValue
Filter condition value
SortDirection
Sort direction

Traits§

FilterableEntity
Trait for entities to declare which fields are allowed in filter queries.

Functions§

is_valid_field
Validate a field name against an allow-list
parse_filters
Parse filter from query parameters HashMap
sanitize_field_name
Sanitize a field name for SQL identifier use