pub struct KeyedCursorProvider;
Expand description
This cursor provider is for working with something like DynamoDB. Each item’s cursor is generated
by implementing the CursorByKey
trait, and the PageInfo is generated using the item cursors themselves.
If any after
is provided, it’s assumed that there is a previous page.
If there are any items returned, it’s assumed that there is a next page.
NOTE - read that previous line again. This follows the style of opaque, web scale cursors where the only valid last page is an empty page. This can be unexpected to a lot of frontends.
Trait Implementations§
Source§impl<ItemT> CursorProvider<ItemT> for KeyedCursorProviderwhere
ItemT: CursorByKey,
impl<ItemT> CursorProvider<ItemT> for KeyedCursorProviderwhere
ItemT: CursorByKey,
Source§fn get_cursor_for_item(
&self,
_metadata: &PaginationMetadata,
_item_idx: i32,
item: &ItemT,
) -> impl Cursor
fn get_cursor_for_item( &self, _metadata: &PaginationMetadata, _item_idx: i32, item: &ItemT, ) -> impl Cursor
Build a cursor instance for the given item, with helper metadata etc. Read more
Source§fn get_page_info(
&self,
metadata: &PaginationMetadata,
items: &[ItemT],
) -> PageInfo
fn get_page_info( &self, metadata: &PaginationMetadata, items: &[ItemT], ) -> PageInfo
Builds the
PageInfo
to return to the RelayConnectionAuto Trait Implementations§
impl Freeze for KeyedCursorProvider
impl RefUnwindSafe for KeyedCursorProvider
impl Send for KeyedCursorProvider
impl Sync for KeyedCursorProvider
impl Unpin for KeyedCursorProvider
impl UnwindSafe for KeyedCursorProvider
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> 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