From d11ac3c9ba709eb4a0691224601088252e49b61d Mon Sep 17 00:00:00 2001 From: Jake Swenson Date: Fri, 14 May 2021 08:26:38 -0700 Subject: paging --- src/models.rs | 1 + src/models/paging.rs | 13 +++++++++++++ src/models/search.rs | 11 +++-------- 3 files changed, 17 insertions(+), 8 deletions(-) create mode 100644 src/models/paging.rs (limited to 'src') diff --git a/src/models.rs b/src/models.rs index 4d43a3f..291ca4f 100644 --- a/src/models.rs +++ b/src/models.rs @@ -1,3 +1,4 @@ +pub mod paging; pub mod properties; pub mod search; pub mod text; diff --git a/src/models/paging.rs b/src/models/paging.rs new file mode 100644 index 0000000..31244a2 --- /dev/null +++ b/src/models/paging.rs @@ -0,0 +1,13 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone)] +#[serde(transparent)] +pub struct PagingCursor(String); + +#[derive(Serialize, Debug, Eq, PartialEq, Default)] +pub struct Paging { + #[serde(skip_serializing_if = "Option::is_none")] + start_cursor: Option, + #[serde(skip_serializing_if = "Option::is_none")] + page_size: Option, +} diff --git a/src/models/search.rs b/src/models/search.rs index 32989e8..ee0bb51 100644 --- a/src/models/search.rs +++ b/src/models/search.rs @@ -1,3 +1,4 @@ +use crate::models::paging::Paging; use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize, Debug, Eq, PartialEq, Hash, Copy, Clone)] @@ -38,10 +39,6 @@ pub struct Filter { property: FilterProperty, } -#[derive(Serialize, Deserialize, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone)] -#[serde(transparent)] -pub struct PagingCursor(String); - #[derive(Serialize, Debug, Eq, PartialEq, Default)] pub struct SearchRequest { #[serde(skip_serializing_if = "Option::is_none")] @@ -50,10 +47,8 @@ pub struct SearchRequest { sort: Option, #[serde(skip_serializing_if = "Option::is_none")] filter: Option, - #[serde(skip_serializing_if = "Option::is_none")] - start_cursor: Option, - #[serde(skip_serializing_if = "Option::is_none")] - page_size: Option, + #[serde(flatten)] + paging: Option, } #[derive(Debug, Eq, PartialEq)] -- cgit v1.2.3