Struct konst::slice::IterCopiedRev
source · pub struct IterCopiedRev<'a, T> { /* private fields */ }
Expand description
A const equivalent of iter::Rev<iter::Copied<slice::Iter<'a, T>>>
This const iterator can be created with
konst::slice::iter_copied(slice).rev()
§Example
use konst::iter;
use konst::slice::{self, IterCopiedRev};
const fn rfind_even(slice: &[u32]) -> Option<u32> {
let iter: IterCopiedRev<'_, u32> = slice::iter_copied(slice).rev();
iter::eval!(iter,find(|&elem| elem % 2 == 0))
}
assert_eq!(rfind_even(&[]), None);
assert_eq!(rfind_even(&[1]), None);
assert_eq!(rfind_even(&[1, 2]), Some(2));
assert_eq!(rfind_even(&[1, 2, 3, 4, 5]), Some(4));
Implementations§
source§impl<'a, T> IterCopiedRev<'a, T>where
T: Copy,
impl<'a, T> IterCopiedRev<'a, T>where
T: Copy,
sourcepub const fn copy(&self) -> IterCopiedRev<'a, T>
pub const fn copy(&self) -> IterCopiedRev<'a, T>
Creates a clone of this iterator
sourcepub const fn rev(self) -> IterCopied<'a, T>
pub const fn rev(self) -> IterCopied<'a, T>
Reverses the iterator
sourcepub const fn next(self) -> Option<(T, IterCopiedRev<'a, T>)>
pub const fn next(self) -> Option<(T, IterCopiedRev<'a, T>)>
Advances the iterator and returns the next value.
sourcepub const fn next_back(self) -> Option<(T, IterCopiedRev<'a, T>)>
pub const fn next_back(self) -> Option<(T, IterCopiedRev<'a, T>)>
Removes and returns an element from the end of the iterator.
Trait Implementations§
source§impl<'a, T> ConstIntoIter for IterCopiedRev<'a, T>
impl<'a, T> ConstIntoIter for IterCopiedRev<'a, T>
§type Kind = IsIteratorKind
type Kind = IsIteratorKind
What kind of type this is: Read more
§type IntoIter = IterCopiedRev<'a, T>
type IntoIter = IterCopiedRev<'a, T>
The iterator that this can be converted into.
Auto Trait Implementations§
impl<'a, T> Freeze for IterCopiedRev<'a, T>
impl<'a, T> RefUnwindSafe for IterCopiedRev<'a, T>where
T: RefUnwindSafe,
impl<'a, T> Send for IterCopiedRev<'a, T>where
T: Sync,
impl<'a, T> Sync for IterCopiedRev<'a, T>where
T: Sync,
impl<'a, T> Unpin for IterCopiedRev<'a, T>
impl<'a, T> UnwindSafe for IterCopiedRev<'a, T>where
T: RefUnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more