#[derive(QueryParams)]
{
// Attributes available to this derive:
#[orm]
}
Expand description
Derive QueryParams helpers for building dynamic queries from a params struct.
§Example
ⓘ
use pgorm::QueryParams;
#[derive(QueryParams)]
#[orm(model = "User")]
struct UserSearchParams<'a> {
#[orm(eq(UserQuery::COL_ID))]
id: Option<i64>,
#[orm(eq(UserQuery::COL_EMAIL))]
email: Option<&'a str>,
}
let q = UserSearchParams { id, email }.into_query()?;§Attributes
Struct-level:
#[orm(model = "TypePath")]- The model type that providesModel::query()
Field-level:
#[orm(eq(COL))]- Equality filter (auto useseq_opt_strfor&str/String)#[orm(eq_str(COL))]- Equality filter, forcing string conversion#[orm(eq_map(COL, map_fn))]- Equality filter after mapping (e.g. parse)#[orm(map(map_fn))]- Optional mapper (returnsOption<T>;Nonemeans “skip filter”)#[orm(ne(COL))]/#[orm(gt(COL))]/#[orm(gte(COL))]/#[orm(lt(COL))]/#[orm(lte(COL))]#[orm(like(COL))]/#[orm(ilike(COL))]/#[orm(not_like(COL))]/#[orm(not_ilike(COL))]#[orm(in_list(COL))]/#[orm(not_in(COL))]#[orm(between(COL))]/#[orm(not_between(COL))](expects(T, T)orOption<(T, T)>)#[orm(is_null(COL))]/#[orm(is_not_null(COL))](expectsboolorOption<bool>)#[orm(order_by)]- Replace theOrderBybuilder (expectsOrderByorOption<OrderBy>)#[orm(order_by_asc)]/#[orm(order_by_desc)]- Add an ORDER BY column (expects a column ident orOption<...>)#[orm(order_by_raw)]- Add a raw ORDER BY item (escape hatch)#[orm(paginate)]- Replace thePaginationbuilder (expectsPaginationorOption<Pagination>)#[orm(limit)]/#[orm(offset)]- Set LIMIT/OFFSET (expectsi64orOption<i64>)#[orm(page)]- Page-based pagination (expects(page, per_page)orOption<(page, per_page)>)#[orm(page(per_page = EXPR))]- Page-based pagination from a page number (expectsi64/Option<i64>)#[orm(raw)]- Raw WHERE fragment (escape hatch)#[orm(and)]/#[orm(or)]- Combine aWhereExpr(escape hatch)#[orm(skip)]- Ignore this field