diff options
Diffstat (limited to 'src/libcore')
| -rw-r--r-- | src/libcore/iter.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/libcore/iter.rs b/src/libcore/iter.rs index 03c473ed967..299864e3b3d 100644 --- a/src/libcore/iter.rs +++ b/src/libcore/iter.rs @@ -1323,6 +1323,23 @@ impl<T, D, I> ExactSizeIterator for Cloned<I> where I: ExactSizeIterator<Item=D>, {} +#[unstable(feature = "core", reason = "trait is experimental")] +impl<T, D, I> RandomAccessIterator for Cloned<I> where + T: Clone, + D: Deref<Target=T>, + I: RandomAccessIterator<Item=D> +{ + #[inline] + fn indexable(&self) -> usize { + self.it.indexable() + } + + #[inline] + fn idx(&mut self, index: usize) -> Option<T> { + self.it.idx(index).cloned() + } +} + /// An iterator that repeats endlessly #[derive(Clone)] #[must_use = "iterator adaptors are lazy and do nothing unless consumed"] |
