use super::{action::Action, facet::Facet};
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Page<T> {
#[serde(skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<T>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_page: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub facets: Option<Vec<Facet>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_size: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub actions: Option<HashMap<String, Action>>,
}
impl<T> Page<T>
where
T: Default,
{
pub fn new() -> Self {
Self {
..Default::default()
}
}
}