about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAaronepower <theaaronepower@gmail.com>2016-06-16 14:44:56 +0100
committerAaronepower <theaaronepower@gmail.com>2016-06-23 07:05:16 +0100
commit703d7b519e69daf03e34edcd1af2957e393414b5 (patch)
tree23129a0d2e5cd8407bc14fd0bb5f5d22563fe1b3
parenta479a6a7a6fa1bfe1f18d7d7411ad14e7b8ca17b (diff)
downloadrust-703d7b519e69daf03e34edcd1af2957e393414b5.tar.gz
rust-703d7b519e69daf03e34edcd1af2957e393414b5.zip
Added Default trait for Cow
-rw-r--r--src/libcollections/borrow.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/libcollections/borrow.rs b/src/libcollections/borrow.rs
index 6ca0db68a88..37dbeb4eae1 100644
--- a/src/libcollections/borrow.rs
+++ b/src/libcollections/borrow.rs
@@ -15,6 +15,7 @@
 use core::clone::Clone;
 use core::cmp::{Eq, Ord, Ordering, PartialEq, PartialOrd};
 use core::convert::AsRef;
+use core::default::Default;
 use core::hash::{Hash, Hasher};
 use core::marker::Sized;
 use core::ops::Deref;
@@ -248,6 +249,16 @@ impl<'a, B: ?Sized> fmt::Display for Cow<'a, B>
     }
 }
 
+#[stable(feature = "default", since = "1.11.0")]
+impl<'a, B: ?Sized> Default for Cow<'a, B>
+    where B: ToOwned,
+          <B as ToOwned>::Owned: Default
+{
+    fn default() -> Cow<'a, B> {
+        Owned(<B as ToOwned>::Owned::default())
+    }
+}
+
 #[stable(feature = "rust1", since = "1.0.0")]
 impl<'a, B: ?Sized> Hash for Cow<'a, B> where B: Hash + ToOwned {
     #[inline]