Skip to main content

onspring/models/
paging.rs

1use serde::Deserialize;
2
3/// Parameters for paginated API requests.
4#[derive(Debug, Clone)]
5pub struct PagingRequest {
6  pub page_number: i32,
7  pub page_size: i32,
8}
9
10impl Default for PagingRequest {
11  fn default() -> Self {
12    Self {
13      page_number: 1,
14      page_size: 50,
15    }
16  }
17}
18
19/// A paginated response from the API.
20#[derive(Debug, Clone, Deserialize)]
21#[serde(rename_all = "camelCase")]
22pub struct PagedResponse<T> {
23  pub page_number: Option<i32>,
24  pub page_size: Option<i32>,
25  pub total_pages: Option<i32>,
26  pub total_records: Option<i32>,
27  pub items: Option<Vec<T>>,
28}
29
30/// A collection response from the API (non-paginated).
31#[derive(Debug, Clone, Deserialize)]
32#[serde(rename_all = "camelCase")]
33pub struct CollectionResponse<T> {
34  pub count: Option<i32>,
35  pub items: Option<Vec<T>>,
36}