about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorEduard-Mihai Burtescu <edy.burt@gmail.com>2016-03-23 17:59:14 +0200
committerEduard-Mihai Burtescu <edy.burt@gmail.com>2016-03-23 17:59:14 +0200
commit2de428e1a25dab82b5b8d7f78a4f67ade89cf1f3 (patch)
treea0498475a3b20029bfa8c1722d8947d0301799b7 /src/libstd
parent26cfc269a0ec6a7c895c38954e9701b62940df07 (diff)
parentb5b1d0685e54dc9228757ada714551d7eed121f1 (diff)
downloadrust-2de428e1a25dab82b5b8d7f78a4f67ade89cf1f3.tar.gz
rust-2de428e1a25dab82b5b8d7f78a4f67ade89cf1f3.zip
Rollup merge of #32404 - WiSaGaN:feature/osstring-implement-default, r=aturon
Implement Default trait for OsString/OsStr

Fixes #32385
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/ffi/os_str.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/libstd/ffi/os_str.rs b/src/libstd/ffi/os_str.rs
index 46f2d3a6418..de840457a01 100644
--- a/src/libstd/ffi/os_str.rs
+++ b/src/libstd/ffi/os_str.rs
@@ -173,6 +173,14 @@ impl ops::Deref for OsString {
     }
 }
 
+#[stable(feature = "osstring_default", since = "1.9.0")]
+impl Default for OsString {
+    #[inline]
+    fn default() -> OsString {
+        OsString::new()
+    }
+}
+
 #[stable(feature = "rust1", since = "1.0.0")]
 impl Debug for OsString {
     fn fmt(&self, formatter: &mut fmt::Formatter) -> Result<(), fmt::Error> {
@@ -302,6 +310,14 @@ impl OsStr {
     }
 }
 
+#[stable(feature = "osstring_default", since = "1.9.0")]
+impl<'a> Default for &'a OsStr {
+    #[inline]
+    fn default() -> &'a OsStr {
+        OsStr::new("")
+    }
+}
+
 #[stable(feature = "rust1", since = "1.0.0")]
 impl PartialEq for OsStr {
     fn eq(&self, other: &OsStr) -> bool {
@@ -555,6 +571,12 @@ mod tests {
     }
 
     #[test]
+    fn test_os_string_default() {
+        let os_string: OsString = Default::default();
+        assert_eq!("", &os_string);
+    }
+
+    #[test]
     fn test_os_str_is_empty() {
         let mut os_string = OsString::new();
         assert!(os_string.is_empty());
@@ -577,4 +599,10 @@ mod tests {
         os_string.clear();
         assert_eq!(0, os_string.len());
     }
+
+    #[test]
+    fn test_os_str_default() {
+        let os_str: &OsStr = Default::default();
+        assert_eq!("", os_str);
+    }
 }