Skip to main content

DoubleEndedLender

Trait DoubleEndedLender 

Source
pub trait DoubleEndedLender: Lender {
    // Required method
    fn next_back(&mut self) -> Option<Lend<'_, Self>>;

    // Provided methods
    fn advance_back_by(&mut self, n: usize) -> Result<(), NonZeroUsize> { ... }
    fn nth_back(&mut self, n: usize) -> Option<Lend<'_, Self>> { ... }
    fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R
       where F: FnMut(B, Lend<'_, Self>) -> R,
             R: Try<Output = B> { ... }
    fn rfold<B, F>(self, init: B, f: F) -> B
       where Self: Sized,
             F: FnMut(B, Lend<'_, Self>) -> B { ... }
    fn rfind<P>(&mut self, predicate: P) -> Option<Lend<'_, Self>>
       where Self: Sized,
             P: FnMut(&Lend<'_, Self>) -> bool { ... }
}
Expand description

Required Methods§

Source

fn next_back(&mut self) -> Option<Lend<'_, Self>>

Removes and returns a lend from the end of the lender.

Returns None when there are no more elements.

See DoubleEndedIterator::next_back.

Provided Methods§

Source

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

Advances the lender from the back by n elements.

See DoubleEndedIterator::advance_back_by.

Source

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

Returns the nth element from the end of the lender.

See DoubleEndedIterator::nth_back.

Source

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

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

See DoubleEndedIterator::try_rfold.

Source

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

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

See DoubleEndedIterator::rfold.

Source

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

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

See DoubleEndedIterator::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: DoubleEndedLender> DoubleEndedLender for &mut L

Source§

fn next_back(&mut self) -> Option<Lend<'_, Self>>

Source§

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

Source§

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

Implementors§

Source§

impl<'a, L> DoubleEndedLender for Repeat<'a, L>
where L: ?Sized + CovariantLending + 'a, for<'all> Lend<'all, L>: Clone,

Source§

impl<'a, L, F> DoubleEndedLender for RepeatWith<'a, L, F>
where L: ?Sized + CovariantLending + 'a, F: FnMut() -> Lend<'a, L>,

Source§

impl<'a, L, I> DoubleEndedLender for LendIter<'a, L, I>
where L: ?Sized + CovariantLending + 'a, I: DoubleEndedIterator<Item = Lend<'a, L>>,

Source§

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

Source§

impl<A, B> DoubleEndedLender for Chain<A, B>
where A: DoubleEndedLender, B: DoubleEndedLender + for<'all> Lending<'all, Lend = Lend<'all, A>>,

Source§

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

Source§

impl<I: DoubleEndedIterator> DoubleEndedLender for FromIter<I>

Source§

impl<I: DoubleEndedIterator> DoubleEndedLender for FromIterRef<I>

Source§

impl<L> DoubleEndedLender for Empty<L>
where L: ?Sized + for<'all> Lending<'all>,

Source§

impl<L> DoubleEndedLender for Enumerate<L>

Source§

impl<L> DoubleEndedLender for Fuse<L>

Source§

impl<L> DoubleEndedLender for Once<'_, L>
where L: ?Sized + CovariantLending,

Source§

impl<L> DoubleEndedLender for Rev<L>

Source§

impl<L> DoubleEndedLender for Skip<L>

Source§

impl<L> DoubleEndedLender for StepBy<L>

Source§

impl<L> DoubleEndedLender for Take<L>

Source§

impl<L, F> DoubleEndedLender for FilterMap<L, F>
where for<'all> F: FnMutHKAOpt<'all, Lend<'all, L>>, L: DoubleEndedLender,

Source§

impl<L, F> DoubleEndedLender for Inspect<L, F>
where L: DoubleEndedLender, F: FnMut(&Lend<'_, L>),

Source§

impl<L, F> DoubleEndedLender for Mutate<L, F>
where L: DoubleEndedLender, F: FnMut(&mut Lend<'_, L>),

Source§

impl<L, P> DoubleEndedLender for Filter<L, P>
where P: FnMut(&Lend<'_, L>) -> bool, L: DoubleEndedLender,

Source§

impl<L: DoubleEndedLender, F> DoubleEndedLender for Map<L, F>
where F: for<'all> FnMutHKA<'all, Lend<'all, L>>,

Source§

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

Source§

impl<T> DoubleEndedLender for WindowsMut<'_, T>

Source§

impl<T, const WINDOW_SIZE: usize> DoubleEndedLender for ArrayWindowsMut<'_, T, WINDOW_SIZE>