Skip to main content

FallibleIntersperseWith

Struct FallibleIntersperseWith 

Source
pub struct FallibleIntersperseWith<'this, L, G>
where L: FallibleLender,
{ /* private fields */ }
Expand description

A fallible lender that inserts an element computed by a closure between adjacent elements of the underlying lender.

This struct is created by the intersperse_with() method on FallibleLender. See its documentation for more.

Implementations§

Source§

impl<'this, L, G> IntersperseWith<'this, L, G>
where L: FallibleLender, G: FnMut() -> Result<FallibleLend<'this, L>, L::Error>,

Source

pub fn into_inner(self) -> L

Returns the inner lender.

Source

pub fn into_parts(self) -> (L, G)

Returns the inner lender and the separator function.

Trait Implementations§

Source§

impl<L, G> Debug for IntersperseWith<'_, L, G>
where L: FallibleLender + Debug, for<'all> FallibleLend<'all, L>: Debug,

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<'this, L, G> FallibleLender for IntersperseWith<'this, L, G>
where L: FallibleLender, G: FnMut() -> Result<FallibleLend<'this, L>, L::Error>,

Source§

type Error = <L as FallibleLender>::Error

The error type.
Source§

fn __check_covariance<'long: 'short, 'short>( proof: CovariantProof<&'short <Self as FallibleLending<'long>>::Lend>, ) -> CovariantProof<&'short <Self as FallibleLending<'short>>::Lend>

Internal method for compile-time covariance checking. Read more
Source§

fn next(&mut self) -> Result<Option<FallibleLend<'_, Self>>, Self::Error>

Yields the next lend, if any, of the lender, or Ok(None) when iteration is finished. Read more
Source§

fn fold<B, F>(self, init: B, f: F) -> Result<B, Self::Error>
where Self: Sized, F: FnMut(B, FallibleLend<'_, Self>) -> Result<B, Self::Error>,

Source§

fn size_hint(&self) -> (usize, Option<usize>)

Gets the estimated minimum and maximum length of the lender. Both bounds assume that all remaining calls to next() succeed. That is, next() could return an Err in fewer calls than specified by the lower bound. Read more
Source§

fn next_chunk(&mut self, chunk_size: usize) -> Chunk<'_, Self>
where Self: Sized,

Takes the next chunk_size lends of the lender with temporary lender Chunk. This is equivalent to cloning the lender and calling take(chunk_size) on it. Read more
Source§

fn count(self) -> Result<usize, Self::Error>
where Self: Sized,

Counts the number of lends in the lender by consuming it until the lender yields Ok(None) or Err(_). Read more
Source§

fn last<'call>( &'call mut self, ) -> Result<Option<FallibleLend<'call, Self>>, Self::Error>
where Self: Sized,

Gets the last lend of the lender, if any, by consuming it. Read more
Source§

fn advance_by( &mut self, n: usize, ) -> Result<Result<(), NonZeroUsize>, Self::Error>

Advances the lender by n lends. Read more
Source§

fn nth( &mut self, n: usize, ) -> Result<Option<FallibleLend<'_, Self>>, Self::Error>

Yields the nth lend of the lender, if any, by consuming it. If the lender does not have enough lends, returns Ok(None). Read more
Source§

fn step_by(self, step: usize) -> StepBy<Self>
where Self: Sized,

Skips step - 1 lends between each lend of the lender. Read more
Source§

fn chain<U>( self, other: U, ) -> Chain<Self, <U as IntoFallibleLender>::FallibleLender>
where Self: Sized, U: IntoFallibleLender<Error = Self::Error> + for<'all> FallibleLending<'all, Lend = FallibleLend<'all, Self>>,

Chains the lender with another lender of the same type. Read more
Source§

fn zip<U: IntoFallibleLender>( self, other: U, ) -> Zip<Self, <U as IntoFallibleLender>::FallibleLender>
where Self: Sized,

Zips the lender with another lender of the same or different type. Read more
Source§

fn intersperse<'call>( self, separator: FallibleLend<'call, Self>, ) -> FallibleIntersperse<'call, Self>
where Self: Sized, for<'all> FallibleLend<'all, Self>: Clone,

Intersperses each lend of this lender with the given separator. Read more
Source§

fn intersperse_with<'call, G>( self, separator: G, ) -> FallibleIntersperseWith<'call, Self, G>
where Self: Sized, G: FnMut() -> Result<FallibleLend<'call, Self>, Self::Error>,

Intersperses each lend of this lender with the separator produced by the given function. Read more
Source§

fn map<F>(self, f: Covar<F>) -> Map<Self, F>
where Self: Sized, F: for<'all> FnMutHKARes<'all, FallibleLend<'all, Self>, Self::Error>,

Maps each lend of this lender using the given function. Read more
Source§

fn map_err<E, F>(self, f: F) -> MapErr<E, Self, F>
where Self: Sized, F: FnMut(Self::Error) -> E,

Maps the error of this lender using the given function. Read more
Source§

fn map_into_iter<O, F>(self, f: F) -> MapIntoIter<Self, O, F>
where Self: Sized, F: FnMut(FallibleLend<'_, Self>) -> Result<O, Self::Error>,

Maps each lend of this lender into an owned value using the given function. Read more
Source§

fn for_each<F>(self, f: F) -> Result<(), Self::Error>
where Self: Sized, F: FnMut(FallibleLend<'_, Self>) -> Result<(), Self::Error>,

Calls the given function with each lend of this lender. Read more
Source§

fn filter<P>(self, predicate: P) -> Filter<Self, P>
where Self: Sized, P: FnMut(&FallibleLend<'_, Self>) -> Result<bool, Self::Error>,

Filters this lender using the given predicate. Read more
Source§

fn filter_map<F>(self, f: Covar<F>) -> FilterMap<Self, F>
where Self: Sized, F: for<'all> FnMutHKAResOpt<'all, FallibleLend<'all, Self>, Self::Error>,

Filters and maps this lender using the given function. Read more
Source§

fn enumerate(self) -> Enumerate<Self>
where Self: Sized,

Enumerates this lender. Each lend is paired with its zero-based index. Read more
Source§

fn peekable<'call>(self) -> FalliblePeekable<'call, Self>
where Self: Sized,

Makes this lender peekable, so that it is possible to peek at the next lend without consuming it. Read more
Source§

fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
where Self: Sized, P: FnMut(&FallibleLend<'_, Self>) -> Result<bool, Self::Error>,

Skips the first contiguous sequence of lends of this lender that satisfy the given predicate. Read more
Source§

fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
where Self: Sized, P: FnMut(&FallibleLend<'_, Self>) -> Result<bool, Self::Error>,

Takes the first contiguous sequence of lends of this lender that satisfy the given predicate. Read more
Source§

fn map_while<P>(self, predicate: Covar<P>) -> MapWhile<Self, P>
where Self: Sized, P: for<'all> FnMutHKAResOpt<'all, FallibleLend<'all, Self>, Self::Error>,

Maps this lender using the given function while it returns Some. Read more
Source§

fn skip(self, n: usize) -> Skip<Self>
where Self: Sized,

Skips the first n lends of this lender. Read more
Source§

fn take(self, n: usize) -> Take<Self>
where Self: Sized,

Takes the first n lends of this lender. Read more
Source§

fn scan<St, F>(self, initial_state: St, f: Covar<F>) -> Scan<Self, St, F>
where Self: Sized, F: for<'all> FnMutHKAResOpt<'all, (&'all mut St, FallibleLend<'all, Self>), Self::Error>,

Source§

fn flat_map<'call, F>(self, f: Covar<F>) -> FallibleFlatMap<'call, Self, F>
where Self: Sized, F: for<'all> FnMutHKARes<'all, FallibleLend<'all, Self>, Self::Error>, for<'all> <F as FnMutHKARes<'all, FallibleLend<'all, Self>, Self::Error>>::B: IntoFallibleLender<Error = Self::Error>,

Source§

fn flatten<'call>(self) -> FallibleFlatten<'call, Self>
where Self: Sized, for<'all> FallibleLend<'all, Self>: IntoFallibleLender<Error = Self::Error>,

Source§

fn fuse(self) -> Fuse<Self>
where Self: Sized,

Source§

fn inspect<F>(self, f: F) -> Inspect<Self, F>
where Self: Sized, F: FnMut(&FallibleLend<'_, Self>) -> Result<(), Self::Error>,

Source§

fn mutate<F>(self, f: F) -> Mutate<Self, F>
where Self: Sized, F: FnMut(&mut FallibleLend<'_, Self>) -> Result<(), Self::Error>,

Mutates each lend with the given function. Read more
Source§

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Source§

fn collect<B>(self) -> Result<B, (B, Self::Error)>
where Self: Sized, for<'all> B: FromLender<NonFallibleAdapter<'all, Self>>,

Transforms the fallible lender into a collection. If any invocation of next returns Err, returns the collection built from values yielded successfully, together with the error. Read more
Source§

fn try_collect<'a, B, T>(&'a mut self) -> Result<T, (T, Self::Error)>
where Self: Sized, for<'all> FallibleLend<'all, Self>: Try, for<'all> <FallibleLend<'all, Self> as Try>::Residual: Residual<B, TryType = T>, for<'b, 'c, 'd> B: FromLender<FallibleTryShuntAdapter<'b, 'c, 'd, 'a, Self>>,

Collects the lends of a fallible lender that are themselves Try types into a collection of their outputs, short-circuiting on both lender errors and Try failures. Read more
Source§

fn collect_into<E>( self, collection: &mut E, ) -> Result<&mut E, (&mut E, Self::Error)>
where Self: Sized, for<'all> E: ExtendLender<NonFallibleAdapter<'all, Self>>,

Extends an existing collection with lends from this fallible lender. Read more
Source§

fn partition<'this, E, F>(self, f: F) -> Result<(E, E), ((E, E), Self::Error)>
where Self: Sized + 'this, E: Default + ExtendLender<NonFallibleAdapter<'this, Self>>, F: FnMut(&FallibleLend<'_, Self>) -> Result<bool, Self::Error>,

Source§

fn is_partitioned<P>(self, predicate: P) -> Result<bool, Self::Error>
where Self: Sized, P: FnMut(FallibleLend<'_, Self>) -> Result<bool, Self::Error>,

Source§

fn try_fold<B, F, R>(&mut self, init: B, f: F) -> Result<R, Self::Error>
where F: FnMut(B, FallibleLend<'_, Self>) -> Result<R, Self::Error>, R: Try<Output = B>,

Source§

fn try_for_each<F, R>(&mut self, f: F) -> Result<R, Self::Error>
where F: FnMut(FallibleLend<'_, Self>) -> Result<R, Self::Error>, R: Try<Output = ()>,

Source§

fn reduce<T, F>(self, f: F) -> Result<Option<T>, Self::Error>
where Self: Sized, for<'all> FallibleLend<'all, Self>: ToOwned<Owned = T>, F: FnMut(T, FallibleLend<'_, Self>) -> Result<T, Self::Error>,

Source§

fn try_reduce<T, F, R>( self, f: F, ) -> Result<ChangeOutputType<R, Option<T>>, Self::Error>
where Self: Sized, for<'all> FallibleLend<'all, Self>: ToOwned<Owned = T>, F: FnMut(T, FallibleLend<'_, Self>) -> Result<R, Self::Error>, R: Try<Output = T>, R::Residual: Residual<Option<T>>,

Source§

fn all<F>(&mut self, f: F) -> Result<bool, Self::Error>
where F: FnMut(FallibleLend<'_, Self>) -> Result<bool, Self::Error>,

Source§

fn any<F>(&mut self, f: F) -> Result<bool, Self::Error>
where F: FnMut(FallibleLend<'_, Self>) -> Result<bool, Self::Error>,

Source§

fn find<P>( &mut self, predicate: P, ) -> Result<Option<FallibleLend<'_, Self>>, Self::Error>
where P: FnMut(&FallibleLend<'_, Self>) -> Result<bool, Self::Error>,

Source§

fn find_map<'a, F>( &'a mut self, f: F, ) -> Result<Option<<F as FnMutHKAResOpt<'a, FallibleLend<'a, Self>, Self::Error>>::B>, Self::Error>
where Self: Sized, F: for<'all> FnMutHKAResOpt<'all, FallibleLend<'all, Self>, Self::Error>,

Source§

fn try_find<F, R>( &mut self, f: F, ) -> Result<ChangeOutputType<R, Option<FallibleLend<'_, Self>>>, Self::Error>
where Self: Sized, F: FnMut(&FallibleLend<'_, Self>) -> Result<R, Self::Error>, R: Try<Output = bool>, for<'all> R::Residual: Residual<Option<FallibleLend<'all, Self>>>,

Source§

fn position<P>(&mut self, predicate: P) -> Result<Option<usize>, Self::Error>
where Self: Sized, P: FnMut(FallibleLend<'_, Self>) -> Result<bool, Self::Error>,

Source§

fn max<T: Ord>(self) -> Result<Option<T>, Self::Error>
where Self: Sized, for<'all> FallibleLend<'all, Self>: ToOwned<Owned = T>,

Source§

fn min<T: Ord>(self) -> Result<Option<T>, Self::Error>
where Self: Sized, for<'all> FallibleLend<'all, Self>: ToOwned<Owned = T>,

Source§

fn max_by_key<B: Ord, T, F>(self, f: F) -> Result<Option<T>, Self::Error>
where Self: Sized, for<'all> FallibleLend<'all, Self>: ToOwned<Owned = T>, F: FnMut(&T) -> Result<B, Self::Error>,

Source§

fn max_by<T, F>(self, compare: F) -> Result<Option<T>, Self::Error>
where Self: Sized, for<'all> FallibleLend<'all, Self>: ToOwned<Owned = T>, F: FnMut(&T, &FallibleLend<'_, Self>) -> Result<Ordering, Self::Error>,

Source§

fn min_by_key<B: Ord, T, F>(self, f: F) -> Result<Option<T>, Self::Error>
where Self: Sized, for<'all> FallibleLend<'all, Self>: ToOwned<Owned = T>, F: FnMut(&T) -> Result<B, Self::Error>,

Source§

fn min_by<T, F>(self, compare: F) -> Result<Option<T>, Self::Error>
where Self: Sized, for<'all> FallibleLend<'all, Self>: ToOwned<Owned = T>, F: FnMut(&T, &FallibleLend<'_, Self>) -> Result<Ordering, Self::Error>,

Source§

fn unzip<ExtA, ExtB>(self) -> Result<(ExtA, ExtB), Self::Error>
where Self: Sized, for<'all> FallibleLend<'all, Self>: TupleLend<'all>, ExtA: Default + for<'this> ExtendLender<NonFallibleAdapter<'this, <FirstShunt<Self> as IntoFallibleLender>::FallibleLender>>, ExtB: Default + for<'this> ExtendLender<NonFallibleAdapter<'this, <SecondShunt<Self> as IntoFallibleLender>::FallibleLender>>,

Source§

fn copied<T>(self) -> Copied<Self>
where Self: Sized + for<'all> FallibleLending<'all, Lend = &'all T>, T: Copy,

Source§

fn cloned<T>(self) -> Cloned<Self>
where Self: Sized + for<'all> FallibleLending<'all, Lend = &'all T>, T: Clone,

Source§

fn owned(self) -> Owned<Self>
where Self: Sized, for<'all> FallibleLend<'all, Self>: ToOwned,

Source§

fn sum<S>(self) -> Result<S, Self::Error>
where Self: Sized, S: SumFallibleLender<Self>,

Source§

fn product<P>(self) -> Result<P, Self::Error>
where Self: Sized, P: ProductFallibleLender<Self>,

Source§

fn cmp<L>(self, other: L) -> Result<Ordering, Self::Error>
where L: IntoFallibleLender<Error = Self::Error>, L::FallibleLender: for<'all> FallibleLending<'all, Lend = FallibleLend<'all, Self>>, for<'all> FallibleLend<'all, Self>: Ord, Self: Sized,

Source§

fn cmp_by<L, F>(self, other: L, cmp: F) -> Result<Ordering, Self::Error>
where Self: Sized, L: IntoFallibleLender<Error = Self::Error>, F: for<'all> FnMut(FallibleLend<'all, Self>, FallibleLend<'all, L::FallibleLender>) -> Result<Ordering, Self::Error>,

Source§

fn partial_cmp<L>(self, other: L) -> Result<Option<Ordering>, Self::Error>
where L: IntoFallibleLender<Error = Self::Error>, for<'all> FallibleLend<'all, Self>: PartialOrd<FallibleLend<'all, L::FallibleLender>>, Self: Sized,

Source§

fn partial_cmp_by<L, F>( self, other: L, partial_cmp: F, ) -> Result<Option<Ordering>, Self::Error>
where Self: Sized, L: IntoFallibleLender<Error = Self::Error>, F: for<'all> FnMut(FallibleLend<'all, Self>, FallibleLend<'all, L::FallibleLender>) -> Result<Option<Ordering>, Self::Error>,

Source§

fn eq<L>(self, other: L) -> Result<bool, Self::Error>
where L: IntoFallibleLender<Error = Self::Error>, for<'all> FallibleLend<'all, Self>: PartialEq<FallibleLend<'all, L::FallibleLender>>, Self: Sized,

Source§

fn eq_by<L, F>(self, other: L, eq: F) -> Result<bool, Self::Error>
where Self: Sized, L: IntoFallibleLender<Error = Self::Error>, F: for<'all> FnMut(FallibleLend<'all, Self>, FallibleLend<'all, L::FallibleLender>) -> Result<bool, Self::Error>,

Source§

fn ne<L>(self, other: L) -> Result<bool, Self::Error>
where L: IntoFallibleLender<Error = Self::Error>, for<'all> FallibleLend<'all, Self>: PartialEq<FallibleLend<'all, L::FallibleLender>>, Self: Sized,

Source§

fn lt<L>(self, other: L) -> Result<bool, Self::Error>
where L: IntoFallibleLender<Error = Self::Error>, for<'all> FallibleLend<'all, Self>: PartialOrd<FallibleLend<'all, L::FallibleLender>>, Self: Sized,

Source§

fn le<L>(self, other: L) -> Result<bool, Self::Error>
where L: IntoFallibleLender<Error = Self::Error>, for<'all> FallibleLend<'all, Self>: PartialOrd<FallibleLend<'all, L::FallibleLender>>, Self: Sized,

Source§

fn gt<L>(self, other: L) -> Result<bool, Self::Error>
where L: IntoFallibleLender<Error = Self::Error>, for<'all> FallibleLend<'all, Self>: PartialOrd<FallibleLend<'all, L::FallibleLender>>, Self: Sized,

Source§

fn ge<L>(self, other: L) -> Result<bool, Self::Error>
where L: IntoFallibleLender<Error = Self::Error>, for<'all> FallibleLend<'all, Self>: PartialOrd<FallibleLend<'all, L::FallibleLender>>, Self: Sized,

Source§

fn is_sorted<T>(self) -> Result<bool, Self::Error>
where Self: Sized, for<'all> FallibleLend<'all, Self>: ToOwned<Owned = T>, T: PartialOrd,

Source§

fn is_sorted_by<T, F>(self, compare: F) -> Result<bool, Self::Error>
where Self: Sized, for<'all> FallibleLend<'all, Self>: ToOwned<Owned = T>, F: FnMut(&T, &T) -> Result<Option<Ordering>, Self::Error>,

Source§

fn is_sorted_by_key<F, K>(self, f: F) -> Result<bool, Self::Error>
where Self: Sized, F: FnMut(FallibleLend<'_, Self>) -> Result<K, Self::Error>, K: PartialOrd,

Source§

fn iter<'this>(self) -> Iter<'this, Self>
where Self: Sized + 'this, for<'all> FallibleLend<'all, Self>: 'this,

Turns this FallibleLender into a FallibleIterator where it has already fulfilled the requirements of the FallibleIterator trait. Read more
Source§

fn lender_by_ref<'this>(self) -> FromFallibleIterRef<Iter<'this, Self>>
where Self: Sized + 'this, for<'all> FallibleLend<'all, Self>: 'this,

Turns this FallibleLender into a new FallibleLender that lends references to the items of the original lender. Read more
Source§

impl<'lend, 'this, L, G> FallibleLending<'lend> for IntersperseWith<'this, L, G>
where L: FallibleLender, G: FnMut() -> Result<FallibleLend<'this, L>, L::Error>,

Source§

type Lend = <L as FallibleLending<'lend>>::Lend

The type being lent.
Source§

impl<'this, L, G> FusedFallibleLender for IntersperseWith<'this, L, G>
where L: FusedFallibleLender, G: FnMut() -> Result<FallibleLend<'this, L>, L::Error>,

Auto Trait Implementations§

§

impl<'this, L, G> Freeze for IntersperseWith<'this, L, G>
where G: Freeze, <L as FallibleLending<'this>>::Lend: Freeze,

§

impl<'this, L, G> RefUnwindSafe for IntersperseWith<'this, L, G>

§

impl<'this, L, G> Send for IntersperseWith<'this, L, G>
where G: Send, L: Send, <L as FallibleLending<'this>>::Lend: Send,

§

impl<'this, L, G> Sync for IntersperseWith<'this, L, G>
where G: Sync, L: Sync, <L as FallibleLending<'this>>::Lend: Sync,

§

impl<'this, L, G> Unpin for IntersperseWith<'this, L, G>
where G: Unpin, <L as FallibleLending<'this>>::Lend: Unpin,

§

impl<'this, L, G> UnsafeUnpin for IntersperseWith<'this, L, G>
where G: UnsafeUnpin, <L as FallibleLending<'this>>::Lend: UnsafeUnpin,

§

impl<'this, L, G> UnwindSafe for IntersperseWith<'this, L, G>
where G: UnwindSafe, L: RefUnwindSafe, <L as FallibleLending<'this>>::Lend: UnwindSafe,

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<L> IntoFallibleLender for L
where L: FallibleLender,

Source§

type Error = <L as FallibleLender>::Error

The error type of the resulting fallible lender.
Source§

type FallibleLender = L

The fallible lender type that this type converts into.
Source§

fn into_fallible_lender(self) -> L

Converts this type into a FallibleLender.
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.