Skip to main content

aster_forge_api/
sort.rs

1//! Transport-neutral sort direction.
2use serde::{Deserialize, Serialize};
3/// Sort direction used by API query parameters.
4#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5#[cfg_attr(all(debug_assertions, feature = "openapi"), derive(utoipa::ToSchema))]
6#[serde(rename_all = "snake_case")]
7#[derive(Default)]
8pub enum SortOrder {
9    /// Ascending order.
10    #[default]
11    Asc,
12    /// Descending order.
13    Desc,
14}
15
16#[cfg(test)]
17mod tests {
18    use super::*;
19    use serde_json::json;
20    #[test]
21    fn sort_order_serializes_snake_case() {
22        assert_eq!(serde_json::to_value(SortOrder::Asc).unwrap(), json!("asc"));
23        assert_eq!(
24            serde_json::to_value(SortOrder::Desc).unwrap(),
25            json!("desc")
26        );
27    }
28}