ogcapi_types/common/
query.rs

1use serde::{Deserialize, Serialize};
2use serde_with::DisplayFromStr;
3
4use crate::common::{Bbox, Crs, Datetime};
5
6#[serde_with::serde_as]
7#[derive(Deserialize, Debug, Clone)]
8#[serde(deny_unknown_fields, rename_all = "kebab-case")]
9pub struct Query {
10    #[serde(default)]
11    #[serde_as(as = "Option<DisplayFromStr>")]
12    pub bbox: Option<Bbox>,
13    #[serde(default)]
14    #[serde_as(as = "Option<DisplayFromStr>")]
15    pub bbox_crs: Option<Crs>,
16    #[serde(default)]
17    #[serde_as(as = "Option<DisplayFromStr>")]
18    pub datetime: Option<Datetime>,
19    #[serde(flatten)]
20    pub pagination: LimitOffsetPagination,
21    pub f: Option<String>,
22}
23
24/// Query parameters to facilitate pagination with a limit and offset
25#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
26pub struct LimitOffsetPagination {
27    /// Amount of items to return
28    pub limit: Option<usize>,
29    /// Offset into the items list
30    pub offset: Option<usize>,
31}