orx_iterable/transformations/enumerated.rs
1use crate::Iterable;
2
3/// Wraps an `Iterable` and creates a new `Iterable` which yields the element indices
4/// together with the elements.
5pub struct Enumerated<I>
6where
7 I: Iterable,
8{
9 pub(crate) it: I,
10}
11
12impl<I> Iterable for Enumerated<I>
13where
14 I: Iterable,
15{
16 type Item = (usize, I::Item);
17
18 type Iter = core::iter::Enumerate<I::Iter>;
19
20 fn iter(&self) -> Self::Iter {
21 self.it.iter().enumerate()
22 }
23}