KeyedCursorProvider

Struct KeyedCursorProvider 

Source
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 KeyedCursorProvider
where ItemT: CursorByKey,

Source§

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

Builds the PageInfo to return to the RelayConnection

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AnyExt for T
where T: Any + ?Sized,

Source§

fn is<T>(&self) -> bool
where T: Any + ?Sized,

Returns true if the this type is the same as T.
Source§

fn downcast_ref<T>(&self) -> Option<&T>
where T: Any,

Returns Some reference to this value if it’s of type T, or None otherwise.
Source§

fn downcast_mut<T>(&mut self) -> Option<&mut T>
where T: Any,

Returns Some mutable reference to this value if it’s of type T, or None otherwise.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.