From 5705d48e280f8a0065c214edfb3dcdcecc323316 Mon Sep 17 00:00:00 2001 From: Kevin Butler Date: Fri, 13 Feb 2015 17:27:43 +0000 Subject: [PATCH] Implement RandomAccessIterator for Cloned --- src/libcore/iter.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/libcore/iter.rs b/src/libcore/iter.rs index 03c473ed9674..299864e3b3d7 100644 --- a/src/libcore/iter.rs +++ b/src/libcore/iter.rs @@ -1323,6 +1323,23 @@ impl ExactSizeIterator for Cloned where I: ExactSizeIterator, {} +#[unstable(feature = "core", reason = "trait is experimental")] +impl RandomAccessIterator for Cloned where + T: Clone, + D: Deref, + I: RandomAccessIterator +{ + #[inline] + fn indexable(&self) -> usize { + self.it.indexable() + } + + #[inline] + fn idx(&mut self, index: usize) -> Option { + self.it.idx(index).cloned() + } +} + /// An iterator that repeats endlessly #[derive(Clone)] #[must_use = "iterator adaptors are lazy and do nothing unless consumed"]