about summary refs log tree commit diff
path: root/src/libcollections
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2017-04-25 12:34:45 +0200
committerGuillaume Gomez <guillaume1.gomez@gmail.com>2017-04-25 12:34:45 +0200
commite70a266b3bc7b30458a7acfc3ca8c92878735ce1 (patch)
tree0167c06bc3c5bd9e7667b789145fb4b87775992b /src/libcollections
parent0777c757a6832dc5f8f218377f99960f5477311f (diff)
downloadrust-e70a266b3bc7b30458a7acfc3ca8c92878735ce1.tar.gz
rust-e70a266b3bc7b30458a7acfc3ca8c92878735ce1.zip
Implement From<&mut [T]> for Vec
Diffstat (limited to 'src/libcollections')
-rw-r--r--src/libcollections/vec.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libcollections/vec.rs b/src/libcollections/vec.rs
index 6deb87ae772..12f53fe60fe 100644
--- a/src/libcollections/vec.rs
+++ b/src/libcollections/vec.rs
@@ -1984,6 +1984,18 @@ impl<'a, T: Clone> From<&'a [T]> for Vec<T> {
     }
 }
 
+#[stable(feature = "vec_from_mut", since = "1.21.0")]
+impl<'a, T: Clone> From<&'a mut [T]> for Vec<T> {
+    #[cfg(not(test))]
+    fn from(s: &'a mut [T]) -> Vec<T> {
+        s.to_vec()
+    }
+    #[cfg(test)]
+    fn from(s: &'a mut [T]) -> Vec<T> {
+        ::slice::to_vec(s)
+    }
+}
+
 #[stable(feature = "vec_from_cow_slice", since = "1.14.0")]
 impl<'a, T> From<Cow<'a, [T]>> for Vec<T> where [T]: ToOwned<Owned=Vec<T>> {
     fn from(s: Cow<'a, [T]>) -> Vec<T> {