pub struct PaginatedQueryRet<T, C> {
pub has_next_page: bool,
pub end_cursor: Option<C>,
/* private fields */
}Expand description
Return type for paginated queries containing entities and pagination metadata
PaginatedQueryRet contains the fetched entities and utilities for continuing pagination.
Returned by the EsRepo functions like list_by, list_for and list_for_filters.
Used with PaginatedQueryArgs to perform consistent and efficient pagination
§Examples
ⓘ
let mut query = PaginatedQueryArgs { first: 10, after: None };
let mut all_users = Vec::new();
loop {
let result = users.list_by_id(query, ListDirection::Ascending).await?;
let (chunk, next) = result.into_parts();
all_users.extend(chunk);
match next {
Some(next_query) => query = next_query,
None => break,
}
}Fields§
§has_next_page: boolbool for indicating if the list has been exhausted or more entities can be fetched
end_cursor: Option<C>cursor on the last entity fetched to continue paginated queries.
Implementations§
Source§impl<T, C> PaginatedQueryRet<T, C>
impl<T, C> PaginatedQueryRet<T, C>
Sourcepub fn new(
entities: Vec<T>,
has_next_page: bool,
end_cursor: Option<C>,
requested_size: usize,
) -> Self
pub fn new( entities: Vec<T>, has_next_page: bool, end_cursor: Option<C>, requested_size: usize, ) -> Self
requested_size must be the first that produced this page, not entities.len().
pub fn requested_size(&self) -> usize
pub fn entities(&self) -> &[T]
pub fn into_parts(self) -> (Vec<T>, Option<PaginatedQueryArgs<C>>)where
C: Debug,
pub fn into_next_query(self) -> Option<PaginatedQueryArgs<C>>where
C: Debug,
pub fn map_end_cursor<C2>( self, f: impl FnOnce(C) -> C2, ) -> PaginatedQueryRet<T, C2>
pub fn map_entities<T2>( self, f: impl FnMut(T) -> T2, ) -> PaginatedQueryRet<T2, C>
pub fn try_map_entities<T2, E>( self, f: impl FnMut(T) -> Result<T2, E>, ) -> Result<PaginatedQueryRet<T2, C>, E>
Auto Trait Implementations§
impl<T, C> Freeze for PaginatedQueryRet<T, C>
impl<T, C> RefUnwindSafe for PaginatedQueryRet<T, C>
impl<T, C> Send for PaginatedQueryRet<T, C>
impl<T, C> Sync for PaginatedQueryRet<T, C>
impl<T, C> Unpin for PaginatedQueryRet<T, C>
impl<T, C> UnsafeUnpin for PaginatedQueryRet<T, C>
impl<T, C> UnwindSafe for PaginatedQueryRet<T, C>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more