artcoded_api/models/
pageable.rs

1/*
2 * Artcoded
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: 1.0.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use std::fmt::Display;
12
13use crate::models;
14use serde::{Deserialize, Serialize};
15
16#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
17pub struct Pageable {
18    #[serde(rename = "page", skip_serializing_if = "Option::is_none")]
19    pub page: Option<i32>,
20    #[serde(rename = "size", skip_serializing_if = "Option::is_none")]
21    pub size: Option<i32>,
22    #[serde(rename = "sort", skip_serializing_if = "Option::is_none")]
23    pub sort: Option<Vec<String>>,
24}
25
26impl Display for Pageable {
27    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
28        write!(
29            f,
30            "page={}&size={}{}",
31            self.page.map(|p| p - 1).unwrap_or(0),
32            self.size.unwrap_or(10),
33            self.sort
34                .as_ref()
35                .map(|s| format!("&sort={}", s.join(",")))
36                .unwrap_or("".into())
37        )
38    }
39}
40impl Pageable {
41    pub fn new() -> Pageable {
42        Pageable {
43            page: None,
44            size: None,
45            sort: None,
46        }
47    }
48}