Skip to main content

DoubleEndedFallibleLender

Trait DoubleEndedFallibleLender 

Source
pub trait DoubleEndedFallibleLender: FallibleLender {
    // Required method
    fn next_back(
        &mut self,
    ) -> Result<Option<FallibleLend<'_, Self>>, Self::Error>;

    // Provided methods
    fn advance_back_by(
        &mut self,
        n: usize,
    ) -> Result<Result<(), NonZeroUsize>, Self::Error> { ... }
    fn nth_back(
        &mut self,
        n: usize,
    ) -> Result<Option<FallibleLend<'_, Self>>, Self::Error> { ... }
    fn try_rfold<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> { ... }
    fn rfold<B, F>(self, init: B, f: F) -> Result<B, Self::Error>
       where Self: Sized,
             F: FnMut(B, FallibleLend<'_, Self>) -> Result<B, Self::Error> { ... }
    fn rfind<P>(
        &mut self,
        predicate: P,
    ) -> Result<Option<FallibleLend<'_, Self>>, Self::Error>
       where Self: Sized,
             P: FnMut(&FallibleLend<'_, Self>) -> Result<bool, Self::Error> { ... }
}
Expand description

Required Methods§

Source

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

Removes and returns a lend from the end of the lender, or an error.

Returns Ok(None) when there are no more elements.

See DoubleEndedLender::next_back.

Provided Methods§

Source

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

Advances the lender from the back by n elements.

See DoubleEndedLender::advance_back_by.

Source

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

Returns the nth element from the end of the lender.

See DoubleEndedLender::nth_back.

Source

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

The reverse version of FallibleLender::try_fold: it takes elements starting from the back of the lender.

See DoubleEndedLender::try_rfold.

Source

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

The reverse version of FallibleLender::fold: it takes elements starting from the back of the lender.

See DoubleEndedLender::rfold.

Source

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

The reverse version of FallibleLender::find: it searches for an element from the back that satisfies the predicate.

See DoubleEndedLender::rfind.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<L: DoubleEndedFallibleLender> DoubleEndedFallibleLender for &mut L

Source§

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

Source§

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

Source§

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

Implementors§

Source§

impl<'a, L, E> DoubleEndedFallibleLender for Once<'a, L, E>
where E: 'a, L: ?Sized + CovariantFallibleLending,

Source§

impl<'a, L, E> DoubleEndedFallibleLender for Repeat<'a, L, E>
where L: ?Sized + CovariantFallibleLending + 'a, E: 'a, for<'all> FallibleLend<'all, L>: Clone,

Source§

impl<'a, L, E, F> DoubleEndedFallibleLender for RepeatWith<'a, L, E, F>
where L: ?Sized + CovariantFallibleLending + 'a, F: FnMut() -> FallibleLend<'a, L>,

Source§

impl<'a, L, I> DoubleEndedFallibleLender for LendIter<'a, L, I>
where L: ?Sized + CovariantFallibleLending + 'a, I: DoubleEndedFallibleIterator<Item = FallibleLend<'a, L>>,

Source§

impl<'this, L: DoubleEndedFallibleLender> DoubleEndedFallibleLender for Peekable<'this, L>

Source§

impl<A, B> DoubleEndedFallibleLender for Chain<A, B>
where A: DoubleEndedFallibleLender, B: DoubleEndedFallibleLender<Error = A::Error> + for<'all> FallibleLending<'all, Lend = FallibleLend<'all, A>>,

Source§

impl<A, B> DoubleEndedFallibleLender for Zip<A, B>

Source§

impl<E, I> DoubleEndedFallibleLender for Convert<E, I>
where I: DoubleEndedLender + LenderResult<E>,

Source§

impl<E, L: DoubleEndedFallibleLender, F> DoubleEndedFallibleLender for MapErr<E, L, F>
where F: FnMut(L::Error) -> E,

Source§

impl<I: DoubleEndedFallibleIterator> DoubleEndedFallibleLender for FromIter<I>

Source§

impl<I: DoubleEndedFallibleIterator> DoubleEndedFallibleLender for FromIterRef<I>

Source§

impl<L> DoubleEndedFallibleLender for Enumerate<L>

Source§

impl<L> DoubleEndedFallibleLender for Fuse<L>

Source§

impl<L> DoubleEndedFallibleLender for IntoFallible<L>

Source§

impl<L> DoubleEndedFallibleLender for Rev<L>

Source§

impl<L> DoubleEndedFallibleLender for Skip<L>

Source§

impl<L> DoubleEndedFallibleLender for StepBy<L>

Source§

impl<L> DoubleEndedFallibleLender for Take<L>

Source§

impl<L, E> DoubleEndedFallibleLender for Empty<L, E>
where L: ?Sized + for<'all> FallibleLending<'all>,

Source§

impl<L, E> DoubleEndedFallibleLender for OnceErr<L, E>
where L: ?Sized + CovariantFallibleLending,

Source§

impl<L, E> DoubleEndedFallibleLender for RepeatErr<L, E>
where L: ?Sized + CovariantFallibleLending, E: Clone,

Source§

impl<L, E, F> DoubleEndedFallibleLender for RepeatWithErr<L, F>
where L: ?Sized + CovariantFallibleLending, F: FnMut() -> E,

Source§

impl<L, F> DoubleEndedFallibleLender for FilterMap<L, F>
where for<'all> F: FnMutHKAResOpt<'all, FallibleLend<'all, L>, L::Error>, L: DoubleEndedFallibleLender,

Source§

impl<L, F> DoubleEndedFallibleLender for Inspect<L, F>

Source§

impl<L, F> DoubleEndedFallibleLender for Mutate<L, F>
where L: DoubleEndedFallibleLender, F: FnMut(&mut FallibleLend<'_, L>) -> Result<(), L::Error>,

Source§

impl<L, P> DoubleEndedFallibleLender for Filter<L, P>

Source§

impl<L: DoubleEndedFallibleLender, F> DoubleEndedFallibleLender for Map<L, F>
where F: for<'all> FnMutHKARes<'all, FallibleLend<'all, L>, L::Error>,

Source§

impl<St, E, F> DoubleEndedFallibleLender for OnceWith<St, E, F>
where F: for<'all> FnOnceHKA<'all, &'all mut St>,

Source§

impl<St, L, E, F> DoubleEndedFallibleLender for OnceWithErr<St, L, F>
where L: ?Sized + CovariantFallibleLending, F: FnOnce(&mut St) -> E,