Skip to content

Commit 5705d48

Browse files
committed
Implement RandomAccessIterator for Cloned
1 parent 6c065fc commit 5705d48

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

src/libcore/iter.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1323,6 +1323,23 @@ impl<T, D, I> ExactSizeIterator for Cloned<I> where
13231323
I: ExactSizeIterator<Item=D>,
13241324
{}
13251325

1326+
#[unstable(feature = "core", reason = "trait is experimental")]
1327+
impl<T, D, I> RandomAccessIterator for Cloned<I> where
1328+
T: Clone,
1329+
D: Deref<Target=T>,
1330+
I: RandomAccessIterator<Item=D>
1331+
{
1332+
#[inline]
1333+
fn indexable(&self) -> usize {
1334+
self.it.indexable()
1335+
}
1336+
1337+
#[inline]
1338+
fn idx(&mut self, index: usize) -> Option<T> {
1339+
self.it.idx(index).cloned()
1340+
}
1341+
}
1342+
13261343
/// An iterator that repeats endlessly
13271344
#[derive(Clone)]
13281345
#[must_use = "iterator adaptors are lazy and do nothing unless consumed"]

0 commit comments

Comments
 (0)