pub struct TryFlatMap<Page, Err>(/* private fields */);
Expand description

Utility wrapper to flatten paginated results

When flattening paginated results, it’s most convenient to produce an iterator where the Result is present in each item. This provides items() which can wrap an stream of Result<Page, Err> and produce a stream of Result<Item, Err>.

Implementations§

source§

impl<Page, Err> TryFlatMap<Page, Err>

source

pub fn new(stream: PaginationStream<Result<Page, Err>>) -> Self

Creates a TryFlatMap that wraps the input.

source

pub fn flat_map<M, Item, Iter>( self, map: M, ) -> PaginationStream<Result<Item, Err>>
where Page: Send + 'static, Err: Send + 'static, M: Fn(Page) -> Iter + Send + 'static, Item: Send + 'static, Iter: IntoIterator<Item = Item> + Send, <Iter as IntoIterator>::IntoIter: Send,

Produces a new PaginationStream by mapping this stream with map then flattening the result.

Trait Implementations§

source§

impl<Page: Debug, Err: Debug> Debug for TryFlatMap<Page, Err>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<Page, Err> Freeze for TryFlatMap<Page, Err>

§

impl<Page, Err> !RefUnwindSafe for TryFlatMap<Page, Err>

§

impl<Page, Err> Send for TryFlatMap<Page, Err>
where Page: Send, Err: Send,

§

impl<Page, Err> !Sync for TryFlatMap<Page, Err>

§

impl<Page, Err> Unpin for TryFlatMap<Page, Err>

§

impl<Page, Err> !UnwindSafe for TryFlatMap<Page, Err>

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> 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, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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.