Skip to main content

sqlx_paginated/paginated_query_as/models/
query_sort.rs

1use serde::{Deserialize, Serialize};
2
3/// Represents the direction for sorting query results.
4///
5/// Used in conjunction with a column name to specify how results should be ordered.
6///
7/// # Examples
8///
9/// ```rust
10/// use sqlx_paginated::{QuerySortDirection, QueryParamsBuilder};
11/// use serde::Serialize;
12///
13/// #[derive(Serialize, Default)]
14/// struct User {
15///     name: String,
16///     created_at: String,
17/// }
18///
19/// let params = QueryParamsBuilder::<User>::new()
20///     .with_sort("created_at", QuerySortDirection::Descending)
21///     .build();
22/// ```
23#[derive(Serialize, Deserialize, Debug, Clone, Default, PartialEq)]
24#[serde(rename_all = "lowercase")]
25pub enum QuerySortDirection {
26    /// Sort in ascending order (A-Z, 0-9, oldest-newest)
27    Ascending,
28
29    /// Sort in descending order (Z-A, 9-0, newest-oldest)
30    #[default]
31    Descending,
32}