From f30f569f3ba0667414074dd8d95685ea5348c77a Mon Sep 17 00:00:00 2001 From: Tobias Bucher Date: Wed, 3 Feb 2016 13:57:02 +0100 Subject: [PATCH] Add `Cow::from` for `Vec` and slices Fixes #31354. --- src/libcollections/vec.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/libcollections/vec.rs b/src/libcollections/vec.rs index a49b7304643cc..805d9a9807a33 100644 --- a/src/libcollections/vec.rs +++ b/src/libcollections/vec.rs @@ -1505,6 +1505,20 @@ impl<'a> From<&'a str> for Vec { // Clone-on-write //////////////////////////////////////////////////////////////////////////////// +#[stable(feature = "cow_from_vec", since = "1.7.0")] +impl<'a, T: Clone> From<&'a [T]> for Cow<'a, [T]> { + fn from(s: &'a [T]) -> Cow<'a, [T]> { + Cow::Borrowed(s) + } +} + +#[stable(feature = "cow_from_vec", since = "1.7.0")] +impl<'a, T: Clone> From> for Cow<'a, [T]> { + fn from(v: Vec) -> Cow<'a, [T]> { + Cow::Owned(v) + } +} + #[stable(feature = "rust1", since = "1.0.0")] impl<'a, T> FromIterator for Cow<'a, [T]> where T: Clone { fn from_iter>(it: I) -> Cow<'a, [T]> {