use std::fmt::Debug;
use super::{Cursor, Request};
#[derive(PartialEq, Eq, Debug)]
pub struct PaginationState<R: Request> {
pub cursor: Option<Cursor>,
pub request: Option<R>,
pub total: Option<i64>,
}
pub trait PaginationData<R: Request> {
fn new(cursor: Option<Cursor>, request: Option<R>, total: Option<i64>) -> Self;
fn total(&self) -> Option<i64>;
}
impl<R: Request> PaginationData<R> for () {
fn new(_cursor: Option<Cursor>, _request: Option<R>, _total: Option<i64>) -> Self {}
fn total(&self) -> Option<i64> { None }
}
impl<R: Request> PaginationData<R> for PaginationState<R> {
fn new(cursor: Option<Cursor>, request: Option<R>, total: Option<i64>) -> Self {
Self {
cursor,
request,
total,
}
}
fn total(&self) -> Option<i64> { self.total }
}