nyar_collection/tuple/
iter.rs1use super::*;
2
3impl<'i, T> Iterator for NyarTupleView<'i, T>
4where
5 T: Clone,
6{
7 type Item = &'i T;
8
9 fn next(&mut self) -> Option<Self::Item> {
10 if self.rev { self.raw.next_back() } else { self.raw.next() }
11 }
12}
13
14impl<'i, T> DoubleEndedIterator for NyarTupleView<'i, T>
15where
16 T: Clone,
17{
18 fn next_back(&mut self) -> Option<Self::Item> {
19 if self.rev { self.raw.next() } else { self.raw.next_back() }
20 }
21}
22impl<'i, T> ExactSizeIterator for NyarTupleView<'i, T> where T: Clone {}
23
24impl<'i, T> Iterator for NyarTupleEdit<'i, T>
25where
26 T: 'i + Clone,
27{
28 type Item = &'i mut T;
29
30 fn next(&mut self) -> Option<Self::Item> {
31 if self.rev { self.raw.next_back() } else { self.raw.next() }
32 }
33}
34impl<'i, T> DoubleEndedIterator for NyarTupleEdit<'i, T>
35where
36 T: 'i + Clone,
37{
38 fn next_back(&mut self) -> Option<Self::Item> {
39 if self.rev { self.raw.next() } else { self.raw.next_back() }
40 }
41}
42impl<'i, T> ExactSizeIterator for NyarTupleEdit<'i, T> where T: Clone {}