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()
§Version compatibility
This requires the "rust_1_61"
feature.
§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> IntoIterKind for IterCopiedRev<'a, T>
impl<'a, T> IntoIterKind for IterCopiedRev<'a, T>
type Kind = IsIteratorKind
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
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 16 bytes