Trait iterextd::TupleItern
source · pub trait TupleItern<'a> {
type A;
type B;
// Required methods
fn tuple_itern<const N: usize>(&'a self) -> TupleImut<'a, Self::A, N> ⓘ;
fn tuple_itern_mut<const N: usize>(&'a mut self) -> TupleMut<'a, Self::B, N> ⓘ;
}
Available on crate feature
itern
only.Expand description
A trait that allows iteration over N elements of a tuple.
Required Associated Types§
Required Methods§
sourcefn tuple_itern<const N: usize>(&'a self) -> TupleImut<'a, Self::A, N> ⓘ
fn tuple_itern<const N: usize>(&'a self) -> TupleImut<'a, Self::A, N> ⓘ
Creates an iterator from a tuple that returns elements by reference.
The difference from the tuple_iter method is that it can get N elements.
§Panics
If N is greater than the number of elements in the tuple, panic.
§Examples
Basic usage:
use iterextd::TupleItern;
let tup = (5, 4, 3, 2, 1);
let mut tup_iter = tup.tuple_itern::<3>().rev();
assert_eq!(tup_iter.next(), Some(&3));
assert_eq!(tup_iter.next(), Some(&4));
assert_eq!(tup_iter.next(), Some(&5));
assert_eq!(tup_iter.next(), None);
sourcefn tuple_itern_mut<const N: usize>(&'a mut self) -> TupleMut<'a, Self::B, N> ⓘ
fn tuple_itern_mut<const N: usize>(&'a mut self) -> TupleMut<'a, Self::B, N> ⓘ
Creates an iterator from a tuple that returns elements by mutable reference.
The difference from the tuple_iter_mut method is that it can get N elements.
§Panics
If N is greater than the number of elements in the tuple, panic.
§Examples
Basic usage:
use iterextd::TupleItern;
let mut tup = (vec![20], vec![21], vec![22], vec![23]);
let _ = tup.tuple_itern_mut::<2>().for_each(|elem| { elem[0] +=10;});
assert_eq!(tup, (vec![30], vec![31], vec![22], vec![23]));
Object Safety§
This trait is not object safe.