about summary refs log tree commit diff
path: root/src/libcollections/slice.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcollections/slice.rs')
-rw-r--r--src/libcollections/slice.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libcollections/slice.rs b/src/libcollections/slice.rs
index d9a5f3d66f9..ab5ac5bf9e1 100644
--- a/src/libcollections/slice.rs
+++ b/src/libcollections/slice.rs
@@ -89,7 +89,7 @@
 
 use self::Direction::*;
 use alloc::boxed::Box;
-use core::borrow::{BorrowFrom, BorrowFromMut};
+use core::borrow::{BorrowFrom, BorrowFromMut, ToOwned};
 use core::cmp;
 use core::kinds::Sized;
 use core::mem::size_of;
@@ -658,6 +658,11 @@ impl<T> BorrowFromMut<Vec<T>> for [T] {
     fn borrow_from_mut(owned: &mut Vec<T>) -> &mut [T] { owned[mut] }
 }
 
+#[unstable = "trait is unstable"]
+impl<T: Clone> ToOwned<Vec<T>> for [T] {
+    fn to_owned(&self) -> Vec<T> { self.to_vec() }
+}
+
 /// Unsafe operations
 pub mod raw {
     pub use core::slice::raw::{buf_as_slice, mut_buf_as_slice};