From 42e64bc5f2b5c7ff9a1619cc267d0fb7ac23f1d0 Mon Sep 17 00:00:00 2001 From: Alexander Altman Date: Tue, 26 Jul 2016 21:16:46 -0700 Subject: [PATCH] Add `FromIterator` implementations for `Cow` This seems like an oversight, since the corresponding implementation for `Cow<[T]> where T: Clone` exists. --- src/libcollections/string.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/libcollections/string.rs b/src/libcollections/string.rs index 06952253ef3b0..70b514afd035f 100644 --- a/src/libcollections/string.rs +++ b/src/libcollections/string.rs @@ -1874,6 +1874,27 @@ impl<'a> From for Cow<'a, str> { } } +#[stable(feature = "cow_str_from_iter", since = "1.12.0")] +impl<'a> FromIterator for Cow<'a, str> { + fn from_iter>(it: I) -> Cow<'a, str> { + Cow::Owned(FromIterator::from_iter(it)) + } +} + +#[stable(feature = "cow_str_from_iter", since = "1.12.0")] +impl<'a, 'b> FromIterator<&'b str> for Cow<'a, str> { + fn from_iter>(it: I) -> Cow<'a, str> { + Cow::Owned(FromIterator::from_iter(it)) + } +} + +#[stable(feature = "cow_str_from_iter", since = "1.12.0")] +impl<'a> FromIterator for Cow<'a, str> { + fn from_iter>(it: I) -> Cow<'a, str> { + Cow::Owned(FromIterator::from_iter(it)) + } +} + #[stable(feature = "rust1", since = "1.0.0")] impl Into> for String { fn into(self) -> Vec {