1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
mod abstract_mut;
mod enumerate;
mod filter;
mod into_abstract;
mod into_iter;
pub mod iterators;
mod map;
mod shiperator;
mod with_id;
pub use enumerate::Enumerate;
pub use filter::Filter;
pub use into_iter::{IntoIter, IntoIterIds};
pub use iterators::*;
pub use map::Map;
pub use shiperator::{
CurrentId, DoubleEndedShiperator, ExactSizeShiperator, IntoIterator, Shiperator,
};
pub use with_id::WithId;
impl<T> IntoIterIds for T
where
T: IntoIter,
<T as IntoIter>::IntoIter: CurrentId,
{
#[allow(clippy::type_complexity)]
type IntoIterIds = Map<
WithId<<T as IntoIter>::IntoIter>,
fn(
(
<<T as IntoIter>::IntoIter as CurrentId>::Id,
<<T as IntoIter>::IntoIter as Shiperator>::Item,
),
) -> <<T as IntoIter>::IntoIter as CurrentId>::Id,
>;
fn iter_ids(self) -> Self::IntoIterIds {
self.iter().with_id().map(|(id, _)| id)
}
}