use super::{field_collection::FieldCollection, filter::FilterExpression, sort::SortCollection};
use std::fmt::Display;
#[derive(Clone, Debug, PartialEq)]
pub struct PageParams<'a, Fields>
where
Fields: Display,
{
pub agregation_terms: Option<FieldCollection<Fields>>,
pub filter: Option<FilterExpression<'a, Fields>>,
pub page: Option<i64>,
pub page_size: Option<i64>,
pub search: Option<&'a str>,
pub sort: Option<SortCollection<'a>>,
pub nested_fields: Option<FieldCollection<Fields>>,
pub nested_fields_depth: Option<i64>,
pub flatten: Option<bool>,
pub fields: Option<FieldCollection<Fields>>,
}
impl<'a, Fields> PageParams<'a, Fields>
where
Fields: Display,
{
pub fn new() -> Self {
Self {
..Default::default()
}
}
}
impl<'a, Fields> Default for PageParams<'a, Fields>
where
Fields: Display,
{
fn default() -> Self {
Self {
agregation_terms: None,
filter: None,
page: None,
page_size: Default::default(),
search: Default::default(),
sort: None,
nested_fields: None,
nested_fields_depth: Default::default(),
flatten: Default::default(),
fields: None,
}
}
}