Skip to content

Commit 20567a0

Browse files
committed
vec: implement DeepClone
1 parent 0baa927 commit 20567a0

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/libstd/vec.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ And much, much more.
5959
#[warn(non_camel_case_types)];
6060

6161
use cast;
62-
use clone::Clone;
62+
use clone::{Clone, DeepClone};
6363
use container::{Container, Mutable};
6464
use cmp::{Eq, TotalOrd, Ordering, Less, Equal, Greater};
6565
use cmp;
@@ -2199,13 +2199,20 @@ pub mod bytes {
21992199
}
22002200
}
22012201

2202-
impl<A:Clone> Clone for ~[A] {
2202+
impl<A: Clone> Clone for ~[A] {
22032203
#[inline]
22042204
fn clone(&self) -> ~[A] {
22052205
self.iter().map(|item| item.clone()).collect()
22062206
}
22072207
}
22082208

2209+
impl<A: DeepClone> DeepClone for ~[A] {
2210+
#[inline]
2211+
fn deep_clone(&self) -> ~[A] {
2212+
self.iter().map(|item| item.deep_clone()).collect()
2213+
}
2214+
}
2215+
22092216
// This works because every lifetime is a sub-lifetime of 'static
22102217
impl<'self, A> Zero for &'self [A] {
22112218
fn zero() -> &'self [A] { &'self [] }

0 commit comments

Comments
 (0)